Il m'est apparu que si vous ne vous souciez pas de dessiner des points et des lignes les uns sur les autres, alors ce problème est assez facile. Ce qui suit est aussi laid que le péché, surtout à cause de la définition de points en utilisant seulement fullcircle scaled
, mais il fonctionne:
beginfig(1);
pair right, nright;
u:=1cm; right:=(u,0);
path p,q,dot,seg;
dot:=fullcircle scaled (u/2);
seg:=(0,0)-- (dot shifted right);
for N=1 upto 6:
p:=dot; nright:=(N*u,0);
for i=1 upto N:
p:=seg -- (p shifted right);
endfor
q:=(0,0);
for j=1 upto 6:
q:=p -- ((q rotated 60) shifted nright);
endfor
draw q;
endfor
endfig
Cette approche devrait fonctionner pour tous les n nombre -gonal.
Pour être clair, vous voulez un programme qui génère une série de diagrammes comme les diagrammes pour les quatre premiers nombres hexagonaux sur la page WP. C'est un peu fastidieux: le cas récursif doit traiter différemment deux côtés des quatre autres, mais je ne vois pas que c'est dur. Pouvez-vous poster le code que vous avez qui ne fonctionne pas, afin que nous puissions voir où vous allez mal? –