Java Source Code Recursion

Bookmark and Share
Java Source Code Recursion
Below is the free java source code of a recursive Koch Snow Flakes. Have fun with it by trying it in your java compiler and also I suggest that you study its algorithm and make other java applet applications using it as a reference. This recursive koch snow flakes program use the recursive Serpienski Gasket as its main reference as well as used the formula below in forming its source code.

Java Source Code: Recursive Koch Snow Flakes Formula:
Given the 2 Points (X1, Y1) and (X5, Y5)

this Java Source Code Recursion:
Here are the Snapshots for the Sample Output of this Program.
Enter the depth of recursion: 0


 ------Let------  
 deltaX = X5 - X1,  
 deltaY = Y5 - Y1  
 X2 = x1 + deltaX / 3,  
 Y2 = Y1 + deltaY / 3  
 X3 = 0.5 * (X1 + X5) + squareRootOf(3) * (Y1 - Y5) / 6,  
 Y3 = 0.5 * (Y1 + Y5) + squareRootOf(3) * (X5 - X1) / 6  
 X4= X1 + 2 * deltaX / 3,  
 Y4 = Y1 + 2 * deltaY / 3  
 Java Source Code For Recursive Koch Snow Flakes:  
 //java source code for a recursive koch snow flakes  
 import java.awt.*;  
 import javax.swing.*;  
 public class recursiveKochSnowFlakes extends JApplet{  
      int level = 0;  
      public void init(){  
           String levelStr = JOptionPane.showInputDialog("Enter the depth of recursion");  
           level = Integer.parseInt(levelStr);  
      }  
      public void paint(Graphics g){  
           drawSnow(g,level,20,280,280,280);  
           drawSnow(g,level,280,280,150,20);  
           drawSnow(g,level,150,20,20,280);  
      }  
      private void drawSnow (Graphics g, int lev, int x1, int y1, int x5, int y5){  
         int deltaX, deltaY, x2, y2, x3, y3, x4, y4;  
         if (lev == 0){  
              g.drawLine(x1, y1, x5, y5);  
         }  
         else{  
                   deltaX = x5 - x1;  
                   deltaY = y5 - y1;  
                   x2 = x1 + deltaX / 3;  
                   y2 = y1 + deltaY / 3;  
                   x3 = (int) (0.5 * (x1+x5) + Math.sqrt(3) * (y1-y5)/6);  
                   y3 = (int) (0.5 * (y1+y5) + Math.sqrt(3) * (x5-x1)/6);  
                   x4 = x1 + 2 * deltaX /3;  
                   y4 = y1 + 2 * deltaY /3;  
                   drawSnow (g,lev-1, x1, y1, x2, y2);  
                   drawSnow (g,lev-1, x2, y2, x3, y3);  
                   drawSnow (g,lev-1, x3, y3, x4, y4);  
                   drawSnow (g,lev-1, x4, y4, x5, y5);  
              }  
            }  
 }  

{ 1 comments... Views All / Post Comment! }

Mary Brown said...

Very much useful article. Kindly keep blogging

Java Training in Chennai

Post a Comment