# Java Source Code in Recursion: Recursive Koch SnowFlake

## Get A Website Plus a Free Domain Name in Just 1 Hour!

Bring the new technology in your hands! Share your skills, improve and impress. Get Your Own Website and a Free Domain Name Here!

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 (X_{1}, Y_{1}) and (X_{5}, Y_{5})

------Let------

**deltaX** = X_{5} - X_{1,}

**deltaY** = Y_{5} - Y_{1}

**X _{2}** = x1 + deltaX / 3,

**Y _{2}** = Y1 + deltaY / 3

**X _{3}** = 0.5 * (X

_{1}+ X

_{5}) + squareRootOf(3) * (Y

_{1}- Y

_{5}) / 6,

**Y _{3}** = 0.5 * (Y

_{1}+ Y

_{5}) + squareRootOf(3) * (X

_{5}- X

_{1}) / 6

**X _{4}**= X

_{1}+ 2 * deltaX / 3,

**Y _{4}** = Y

_{1}+ 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); } } }

**Here are the Snapshots for the Sample Output of this Program.**

## Enter the depth of recursion: 0

## Enter the depth of recursion: 1

## Enter the depth of recursion: 3

## Enter the depth of recursion: 5

## Do you find it amazing?

## Java Tutorials and Tips

- Java Tutorial Examples
- 5 Important Tips to Learn Java Programming and Other Programming Languages
- Basic Knowledge Required in Programming
- How to Program in Java: Complete Simple Easy Steps
- Java Simple Codes for Beginners
- Java Tutorial for Beginners: A Beginners Guide on Learning Java Programming
- Java Class: Learn More About Classes in Java

## Other Java Source Code Examples

- Java Simple Codes for Beginners
- Java source code: Print Different Asterisk Shapes in Recursion
- Java Source Code: A Recursive Asterisk Diamond Shape
- Java Source code: How to Add Numbers inside an Array using For Loop
- Java Source code: How to Add numbers inside an Array Using Recursion
- Java Source code Print String Backward using Recursion
- Java Source Code on a Recursive Linear Search
- Java Source Code: Binary Search in Recursion
- Java Source Code: Sort Numbers in Bubble Sort
- Java Source Code: Sort Numbers using Selection Sort
- Java Source code on Printing the Greatest Common Divisor (GCD) using Recursion
- Java source code: Recursive function for X to the power Y
- Java Source Code Determine Person's Salutation and Current Age

## Comments

Yay, now I know 3 applications for recursion: Towers of Hanoi, calculating factorials, and Koch snowflakes. Very cool. I will use this tomorrow evening in my Java class.

I'm fresh in programing and i spent couple of hours to figure out how can i make a "snowflake" without using rotate methods....

After my first fail i spent another couple fo hours to try to understand your program but i fail again.

Did you reduce every line and "rotate" in special sequence ?

Greetings ;D