import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/**
* @author erniu.wzh
*/
public class AWTGraphicsDemo extends Frame {
public AWTGraphicsDemo() {
super("Circle");
prepareGUI();
}
public static void main(String[] args) {
AWTGraphicsDemo awtGraphicsDemo = new AWTGraphicsDemo();
awtGraphicsDemo.setVisible(true);
}
private void prepareGUI() {
setSize(1000, 1000);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent windowEvent) {
System.exit(0);
}
});
}
@Override
public void paint(Graphics g) {
draw(g, 500, 900, 0);
}
private void draw(Graphics g, double x, double y, double s) {
if (s > 3.14 * 2) {
return;
}
point(g, x, y);
s += 0.314 / 180;
draw(g, x + Math.cos(s) * 400 * 0.314 / 180, y - Math.sin(s) * 400 * 0.314 / 180, s);
}
private void point(Graphics g, double x, double y) {
g.drawLine((int) x, (int) y, (int) x, (int) y);
}
}
1
lyusantu 2021-04-29 09:21:31 +08:00
无注释差评
|
2
Kasumi20 2021-04-29 09:26:34 +08:00
画圆不是基操吗?画个贝塞尔曲线试试
|
3
qW7bo2FbzbC0 2021-04-29 09:56:22 +08:00
@Kasumi20 #2 +1
|
4
no1xsyzy 2021-04-29 11:50:10 +08:00
你这是沿着切向和法向偏转算过去?还是个尾递归?(虽然 Java 应当是没有尾调优化)
|
5
mind3x 2021-04-29 13:22:45 +08:00 via Android
别闹了,Bresenham 算法了解一下
|