![]() |
|
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 ![]() 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 ![]() 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 ![]() 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 ![]() 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 ![]() 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 ![]() 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 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
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 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
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 My favorite thing about electric sheep though is that many computers are creating these fractal frames evolving the animation. |