Как сгенерировать число полигонов с помощью метапоста? - PullRequest
3 голосов
/ 11 февраля 2010

Я изучаю метапост и хочу узнать, как сгенерировать фигуру, такую ​​как число многоугольника http://en.wikipedia.org/wiki/Polygonal_number, я получил треугольные числа, но не шестиугольные.

Спасибо за помощь.

1 Ответ

2 голосов
/ 17 февраля 2010

Мне пришло в голову, что если вас не волнует рисование точек и линий друг на друге, тогда эта проблема довольно проста. Следующее так же безобразно, как грех, в основном из-за определения точки, использующего просто fullcircle scaled, но это работает:

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

Этот подход должен работать для всех n -гональных чисел.

...