Sinisterly
L-Systems : Dragon Curve Fractal [Modified] - Printable Version

+- Sinisterly (https://sinister.li)
+-- Forum: Coding (https://sinister.li/Forum-Coding)
+--- Forum: Java, JVM, & JRE (https://sinister.li/Forum-Java-JVM-JRE)
+--- Thread: L-Systems : Dragon Curve Fractal [Modified] (/Thread-L-Systems-Dragon-Curve-Fractal-Modified)

Pages: 1 2


L-Systems : Dragon Curve Fractal [Modified] - Psycho_Coder - 09-16-2014

I made this Dragon Fractal in Java. Its a bit modified. Next time I will make a better one with animation Biggrin

Code:
package dragon; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import javax.imageio.ImageIO; public final class DragonCurve { private BufferedImage img = null; private int IMG_WIDTH; private int IMG_HEIGHT; private GraphicsEnvironment ge = null; private GraphicsDevice gd = null; private GraphicsConfiguration gc = null; public DragonCurve() { IMG_WIDTH = 1400; IMG_HEIGHT = 1400; ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); gd = ge.getDefaultScreenDevice(); gc = gd.getDefaultConfiguration(); } private void createDragonFractal() { Graphics g = null; Graphics2D g2d = (Graphics2D) g; img = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, BufferedImage.TYPE_INT_RGB); img = gc.createCompatibleImage(IMG_WIDTH, IMG_HEIGHT); g2d = img.createGraphics(); g2d.setColor(Color.black); g2d.fillRect(0, 0, IMG_WIDTH, IMG_HEIGHT); g2d.setColor(Color.red); dragonRecur(300, 500, 1000, 1100, 20, g2d); g2d.drawImage(img, 0, 0, null); g2d.dispose(); writeImage(); } private void writeImage() { File file = new File("pic.png"); try { file.createNewFile(); OutputStream out = new FileOutputStream(file); ImageIO.write(img, "png", out); out.close(); } catch (IOException e) { e.printStackTrace(); } } private void dragonRecur(int x1, int y1, int x2, int y2, int k, Graphics2D g2d) { if (k > 0) { int xn = (x1 + x2) / 2 + (y2 - y1) / 2; int yn = (y1 + y2) / 2 - (x2 - x1) / 2; dragonRecur(x2, y2, xn, yn, k - 1, g2d); dragonRecur(x1, y1, xn, yn, k - 1, g2d); } else { g2d.drawLine(x1, y1, x2, y2); } } public static void main(String... strings) { new DragonCurve().createDragonFractal(); } }


Sample Output

[Image: vpmPoOv.png]

Source


L-Systems : Dragon Curve Fractal [Modified] - Psycho_Coder - 09-16-2014

I made this Dragon Fractal in Java. Its a bit modified. Next time I will make a better one with animation Biggrin

Code:
package dragon; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import javax.imageio.ImageIO; public final class DragonCurve { private BufferedImage img = null; private int IMG_WIDTH; private int IMG_HEIGHT; private GraphicsEnvironment ge = null; private GraphicsDevice gd = null; private GraphicsConfiguration gc = null; public DragonCurve() { IMG_WIDTH = 1400; IMG_HEIGHT = 1400; ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); gd = ge.getDefaultScreenDevice(); gc = gd.getDefaultConfiguration(); } private void createDragonFractal() { Graphics g = null; Graphics2D g2d = (Graphics2D) g; img = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, BufferedImage.TYPE_INT_RGB); img = gc.createCompatibleImage(IMG_WIDTH, IMG_HEIGHT); g2d = img.createGraphics(); g2d.setColor(Color.black); g2d.fillRect(0, 0, IMG_WIDTH, IMG_HEIGHT); g2d.setColor(Color.red); dragonRecur(300, 500, 1000, 1100, 20, g2d); g2d.drawImage(img, 0, 0, null); g2d.dispose(); writeImage(); } private void writeImage() { File file = new File("pic.png"); try { file.createNewFile(); OutputStream out = new FileOutputStream(file); ImageIO.write(img, "png", out); out.close(); } catch (IOException e) { e.printStackTrace(); } } private void dragonRecur(int x1, int y1, int x2, int y2, int k, Graphics2D g2d) { if (k > 0) { int xn = (x1 + x2) / 2 + (y2 - y1) / 2; int yn = (y1 + y2) / 2 - (x2 - x1) / 2; dragonRecur(x2, y2, xn, yn, k - 1, g2d); dragonRecur(x1, y1, xn, yn, k - 1, g2d); } else { g2d.drawLine(x1, y1, x2, y2); } } public static void main(String... strings) { new DragonCurve().createDragonFractal(); } }


Sample Output

[Image: vpmPoOv.png]

Source


L-Systems : Dragon Curve Fractal [Modified] - Psycho_Coder - 09-16-2014

I made this Dragon Fractal in Java. Its a bit modified. Next time I will make a better one with animation Biggrin

Code:
package dragon; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import javax.imageio.ImageIO; public final class DragonCurve { private BufferedImage img = null; private int IMG_WIDTH; private int IMG_HEIGHT; private GraphicsEnvironment ge = null; private GraphicsDevice gd = null; private GraphicsConfiguration gc = null; public DragonCurve() { IMG_WIDTH = 1400; IMG_HEIGHT = 1400; ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); gd = ge.getDefaultScreenDevice(); gc = gd.getDefaultConfiguration(); } private void createDragonFractal() { Graphics g = null; Graphics2D g2d = (Graphics2D) g; img = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, BufferedImage.TYPE_INT_RGB); img = gc.createCompatibleImage(IMG_WIDTH, IMG_HEIGHT); g2d = img.createGraphics(); g2d.setColor(Color.black); g2d.fillRect(0, 0, IMG_WIDTH, IMG_HEIGHT); g2d.setColor(Color.red); dragonRecur(300, 500, 1000, 1100, 20, g2d); g2d.drawImage(img, 0, 0, null); g2d.dispose(); writeImage(); } private void writeImage() { File file = new File("pic.png"); try { file.createNewFile(); OutputStream out = new FileOutputStream(file); ImageIO.write(img, "png", out); out.close(); } catch (IOException e) { e.printStackTrace(); } } private void dragonRecur(int x1, int y1, int x2, int y2, int k, Graphics2D g2d) { if (k > 0) { int xn = (x1 + x2) / 2 + (y2 - y1) / 2; int yn = (y1 + y2) / 2 - (x2 - x1) / 2; dragonRecur(x2, y2, xn, yn, k - 1, g2d); dragonRecur(x1, y1, xn, yn, k - 1, g2d); } else { g2d.drawLine(x1, y1, x2, y2); } } public static void main(String... strings) { new DragonCurve().createDragonFractal(); } }


Sample Output

[Image: vpmPoOv.png]

Source


RE: L-Systems : Dragon Curve Fractal [Modified] - shadowwolf91 - 09-16-2014

Thats pretty sweet man


RE: L-Systems : Dragon Curve Fractal [Modified] - shadowwolf91 - 09-16-2014

Thats pretty sweet man


RE: L-Systems : Dragon Curve Fractal [Modified] - h3r0 - 09-16-2014

You should check out electric sheep. Their website is down so here is the wikipedia page. http://en.wikipedia.org/wiki/Electric_Sheep
http://electricsheep.org/


RE: L-Systems : Dragon Curve Fractal [Modified] - h3r0 - 09-16-2014

You should check out electric sheep. Their website is down so here is the wikipedia page. http://en.wikipedia.org/wiki/Electric_Sheep
http://electricsheep.org/


RE: L-Systems : Dragon Curve Fractal [Modified] - Psycho_Coder - 09-17-2014

(09-16-2014, 07:55 PM)h3r0 Wrote: You should check out electric sheep. Their website is down so here is the wikipedia page. http://en.wikipedia.org/wiki/Electric_Sheep
http://electricsheep.org/

Ah I didn't knew about that one. I need the math functions else I won't be able to make it. Well I will Google Biggrin


RE: L-Systems : Dragon Curve Fractal [Modified] - Psycho_Coder - 09-17-2014

(09-16-2014, 07:55 PM)h3r0 Wrote: You should check out electric sheep. Their website is down so here is the wikipedia page. http://en.wikipedia.org/wiki/Electric_Sheep
http://electricsheep.org/

Ah I didn't knew about that one. I need the math functions else I won't be able to make it. Well I will Google Biggrin


RE: L-Systems : Dragon Curve Fractal [Modified] - h3r0 - 09-17-2014

(09-17-2014, 02:44 AM)Psycho_Coder Wrote:
(09-16-2014, 07:55 PM)h3r0 Wrote: You should check out electric sheep. Their website is down so here is the wikipedia page. http://en.wikipedia.org/wiki/Electric_Sheep
http://electricsheep.org/

Ah I didn't knew about that one. I need the math functions else I won't be able to make it. Well I will Google Biggrin

My favorite thing about electric sheep though is that many computers are creating these fractal frames evolving the animation.