Je dois couper une planche selon une courbe. J'aimerais savoir je pourrai effectuer cette opération à l'aide de ma scie à ruban ou si la planche est trop grande pour elle : en orientant la planche selon le trait de coupe, va-t-elle donner dans le bâti de la scie ? Pour modéliser cela, j'ai dessiné la planche et le trait de coupe : \documentclass[border = 1 cm]{standalone} % pour intégrer des dessins MetaPost compilés directement avec LuaLaTeX \usepackage{luamplib} \begin{document} \begin{mplibcode} beginfig(1); % planche draw unitsquare xscaled 113 cm yscaled 26 cm ; % trait de coupe draw (9cm,0) .. (25cm,14cm) .. (88cm,14cm) .. (104cm,0); endfig; \end{mplibcode} \end{document} J'aimerais maintenant déplacer cette figure sur un point fixe, de la même manière que j'orienterai la planche sur la table de manière à ce que le ruban de la scie suive le trait de coupe. Comment faire ? J'aimerais une figure tous les cinq centimètres à peu près. |
En ajoutant un carré centré en p suffisamment grand (éventuellement dessiné en blanc...) à la magnifique solution de Maxime, on obtient la lame fixe. Voir la dernière ligne avant le \documentclass{article} % pour intégrer des dessins MetaPost compilés directement avec LuaLaTeX \usepackage[margin=0.5cm]{geometry} \usepackage{luamplib} \usepackage{pgffor} \newcommand\etape[2]{ \begin{mplibcode} beginfig(#1); % unite u:=0.1cm; largeurScie := 3u; path planche, decoupe; % planche planche := unitsquare xscaled 113u yscaled 26u ; % trait de coupe decoupe := (9u,0) .. (25u,14u) .. (88u,14u) .. (104u,0); pair p,lame; l := length(decoupe); t := #1/#2; p := point (t*l) of decoupe; lame := unitvector direction (t*l) of decoupe; % angle de rotation theta := angle lame; % on dessine la planche tournée autour de p draw planche shifted -p rotated -theta shifted p; draw decoupe shifted -p rotated -theta shifted p; dotlabel.bot(textext("$p$"),p); % on dessine le ruban draw p--(xpart p+largeurScie,ypart p) withcolor red withpen pencircle scaled 2pt; % bord de scie distanceBordScie := 30u; largeurBordScie := 20u; draw (xpart p-largeurBordScie,ypart p-distanceBordScie)--(xpart p+largeurBordScie,ypart p-distanceBordScie) dashed evenly; draw unitsquare shifted (-0.5,-0.5) scaled 200u shifted p withcolor white; endfig; \end{mplibcode} } \begin{document} \foreach \n in{0,...,20}{ \etape{\n}{20}\newpage } \end{document} |
Je ne suis pas sûr de bien comprendre ce que tu veux obtenir, ayant une assez mauvaise imagination spatiale et deux mains gauches. Je te donne donc les opérateurs qui correspondent à ce que je comprends, mais il faudra sûrement adapter. Si tu veux décaler planche et trait de coupe, quelque chose comme : picture p; p:= currentpicture; for i=0 step 5 until 110 : draw p shifted i*cm; endfor; S’il s’agit de décaler le long du trait de coupe : \documentclass[border = 1 cm]{standalone} % pour intégrer des dessins MetaPost compilés directement avec LuaLaTeX \usepackage{luamplib} \begin{document} \begin{mplibcode} beginfig(1); path p[]; p0:= unitsquare xscaled 113 cm yscaled 26 cm ; p1:= (9cm,0) .. (25cm,14cm) .. (88cm,14cm) .. (104cm,0); draw p1; d=arclength(p1); d:=floor(d/5); for i=0 upto d: draw p0 shifted (point i*5cm on p1); endfor; endfig; \end{mplibcode} \end{document} NB: Le code compile sur ConTeXt, je n’ai pas LaTeX d’installé. Merci pour cette proposition. Malheureusement, elle ne compile pas chez moi, y compris avec ConTeXt (ce qui est sans doute dû au fait que je ne connais pas ce logiciel). 1
pour compiler sur ConTeXt, tu remplaces les lignes 1 à 6 par @sztruks : malgré tes instructions, ça ne compile pas avec ConTeXt. Tu aurais un ECM complet ? Au temps pour moi, en adaptant ce qui compilait chez moi à ton EMC j’ai fait une coquille (oublié de rechanger 9u en 9cm) et posé une équation sans doute insoluble (d=floor(d/5)) au lieu d’assigner la valeur. J’ai corrigé mon EMC, il compile chez moi. @sztruks : merci pour tes efforts, mais ça ne compile toujours pas, que ce soit avec LaTeX (et
Affichage de 5 parmi 6
Afficher 1 commentaire(s) en plus
|