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

📄 koch.java

📁 分形算法的Java程序
💻 JAVA
字号:
//Koch曲线(分形频道:fractal.cn)2004
import java.awt.*;
import javax.swing.*;
import java.lang.*;
import java.lang.Math.*;

public class koch extends JApplet{
  
 public void init(){
    new koch();
  }

  public void frameSet(){

   koch shapes = new koch();
   JFrame fra = new JFrame("welcome");
   fra.getContentPane().add(shapes,BorderLayout.CENTER);
         fra.setSize(new Dimension(670,400));
         fra.setResizable(false);
          fra.setVisible(true);
         
 }

  public static void main(String args[]){
    new koch().frameSet();
 
  }

// /////////////////////////////////////////////////////////////
   
   public void paint(Graphics g){
       g.setColor(Color.black);
       Kochv(g,100, 100, 800, 100);
   }

   public void Kochv(Graphics g, double aX, double aY, double bX, double bY){

       double c=10,
              cX = 0, cY = 0, 
              dX = 0, dY = 0,
              eX = 0, eY = 0,
              l  = 0, alpha = 0; 
       if((bX - aX) * (bX - aX) + (bY - aY) * (bY - aY) < c){

         g.drawLine((int) aX, 500-(int) aY, (int) bX, 500-(int) bY);

       }else{

        cX = aX + (bX - aX) / 3;
        cY = aY + (bY - aY) / 3;
        eX = bX - (bX - aX) / 3;
        eY = bY - (bY - aY) / 3;
         l = Math.sqrt((eX - cX) * (eX - cX) + (eY - cY) * (eY - cY));
        alpha = Math.atan((eY - cY) / (eX - cX));
        if( (alpha >= 0) && ((eX - cX) < 0) || (alpha <= 0) && ((eX - cX) < 0)){ 
            alpha = alpha + 3.14159;
        }

        dY = cY + Math.sin(alpha + 3.14159 / 3) * l;
        dX = cX + Math.cos(alpha + 3.14159 / 3) * l;
        
       Kochv(g,aX, aY, cX, cY);
       Kochv(g,eX, eY, bX, bY);
       Kochv(g,cX, cY, dX, dY);
       Kochv(g,dX, dY, eX, eY);

       
         
       }        
   }   
}

⌨️ 快捷键说明

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