⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vonkoch.java

📁 Java写的部分数据结构源码
💻 JAVA
字号:
import java.awt.*;import java.awt.event.*;public class vonKoch extends Frame implements ActionListener {    private TextField lvl, len;    vonKoch() {        super("von Koch snowflake");        Label lvlLbl = new Label("level");        lvl = new TextField("4",3);        Label lenLbl = new Label("side");        len = new TextField("200",3);        Button draw = new Button("draw");        lvl.addActionListener(this);        len.addActionListener(this);        draw.addActionListener(this);        setLayout(new FlowLayout());        add(lvlLbl);        add(lvl);        add(lenLbl);        add(len);        add(draw);        setSize(600,400);        setForeground(Color.white);        setBackground(Color.red);        show();        addWindowListener(new WindowAdapter() {             public void windowClosing(WindowEvent e) {                System.exit(0);             }        });    }    private double angle;    private Point currPt, pt = new Point();    private void right(double x) {        angle += x;    }    private void left (double x) {        angle -= x;    }    private void drawFourLines(double side, int level, Graphics g) {        if (level == 0) {             // arguments to sin() and cos() must be angles given in radians,             // thus, the angles given in degrees must be multiplied by PI/180;             pt.x = ((int)(Math.cos(angle*Math.PI/180)*side)) + currPt.x;             pt.y = ((int)(Math.sin(angle*Math.PI/180)*side)) + currPt.y;             g.drawLine(currPt.x, currPt.y, pt.x, pt.y);             currPt.x = pt.x;             currPt.y = pt.y;        }       else {                                                drawFourLines(side/3.0,level-1,g);             left (60);             drawFourLines(side/3.0,level-1,g);             right(120);             drawFourLines(side/3.0,level-1,g);             left (60);             drawFourLines(side/3.0,level-1,g);        }    }    public void actionPerformed(ActionEvent e) { // ActionListener        repaint();    }    public void paint(Graphics g) {        int level = Integer.parseInt(lvl.getText().trim());        double side = Double.parseDouble(len.getText().trim());        currPt = new Point(200,150);        angle = 0;        for (int i = 1; i <= 3; i++) {            drawFourLines(side,level,g);            right(120);        }    }    static public void main(String[] a) {        new vonKoch();    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -