2010-02-11 64 views
3

我正在学习metapost,我想知道如何生成一个像多边形数字http://en.wikipedia.org/wiki/Polygonal_number,我有三角形数字,但不是六角形。如何使用metapost生成多边形数字图形?

感谢您的帮助。

+1

要清楚,您需要一个程序来生成一系列图表,如WP页面上前四个六角形数字的图表。这有点烦琐:递归案件需要与其他四个方面不同,但我不认为这很困难。你可以发布你的代码不起作用,所以我们可以看到你的错在哪里? – 2010-02-12 09:00:04

回答

2

我想到,如果你不关心绘图点和线条,那么这个问题很简单。以下为罪丑,主要是因为只用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 

这种方法应该为所有的ñ -gonal数的工作。