【发布时间】:2016-03-16 04:46:26
【问题描述】:
我目前有一个制作分形树的程序。但是,我想在我的分形树中使用黄金比例来获得更有趣的设计。我不知道如何用坐标实现它,尤其是 java,因为 (0,0) 在左上角,这让事情变得更加混乱。您可以忽略参数adder 和length,它们不参与此过程。原谅我对这件事的无知,我仍在试图弄清楚黄金分割率究竟是如何运作的。我做了一些研究,但我真的很想用外行的话来回答。
public void paintComponent(Graphics g)
{
g.setColor(Color.RED);
draw(g, order, topX, topY,90,20, 200.00);
}
public void draw(Graphics g, int order, int x1, int y1, double angle, int adder, double length)
{
int x2, y2, x3, y3;
double newAngle = Math.toRadians(angle);
if (order == 1)
{
return;
}
else
{
x2 = (x1 - (int)Math.round(Math.cos(newAngle) * order * 10));
y2 = (y1 - (int)Math.round(Math.sin(newAngle) * order * 10));
g.drawLine(x1, y1, x2, y2);
draw(g, order-1, x2, y2, angle+30, adder+2, length+20);
draw(g, order-1, x2, y2, angle-30, adder+2, length+20);
}
}
【问题讨论】: