V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pxiphx
V2EX  ›  Java

教大家使用 Java 画圆

  •  
  •   pxiphx · 2021-04-28 23:14:14 +08:00 · 2410 次点击
    这是一个创建于 1299 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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);
        }
    }
    
    5 条回复    2021-04-29 13:22:45 +08:00
    lyusantu
        1
    lyusantu  
       2021-04-29 09:21:31 +08:00
    无注释差评
    Kasumi20
        2
    Kasumi20  
       2021-04-29 09:26:34 +08:00
    画圆不是基操吗?画个贝塞尔曲线试试
    qW7bo2FbzbC0
        3
    qW7bo2FbzbC0  
       2021-04-29 09:56:22 +08:00
    @Kasumi20 #2 +1
    no1xsyzy
        4
    no1xsyzy  
       2021-04-29 11:50:10 +08:00
    你这是沿着切向和法向偏转算过去?还是个尾递归?(虽然 Java 应当是没有尾调优化)
    mind3x
        5
    mind3x  
       2021-04-29 13:22:45 +08:00 via Android
    别闹了,Bresenham 算法了解一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   909 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:23 · PVG 04:23 · LAX 12:23 · JFK 15:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.