Java 绘图练习1
要求绘制如下图形(PS:这个图形着实叫不上名字 =_=)

public void paint(final Graphics g) { double theta = 0.0; double increemnt = 66*Math.PI/100.0;//设置旋转参数θ int x = 150; int y = 250; for(int i=0; i<1500;i++) { theta += increemnt; int radius = 100; int x1 = 150+ (int)(radius*Math.cos(theta)); int y1 = 150 + (int)(radius*Math.sin(theta)); g.drawLine(x, y, x1, y1); x = x1; y = y1; } }
本质上是在两个圆上做功夫:
外圈是个大园,内圈是个小园,从大圈上的点做小圆的切线。如是重复。
切线的两端和圆心连接所得到的角度是固定的,之要保证角度的迭代,就可以画出这个图。
首先,确定大圆上的一点(x1,y1),确定一个角度(一般情况下可以绘制除了特殊角度,以及比较小的角度)
然后利用角度确定另一端(x2,y2)。
画第一条线
再将(x2,y2)赋值给(x1,y1),角度迭代,计算出新的(x2,y2)。