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 算法了解一下 |