Just another update
This commit is contained in:
parent
a25938f123
commit
00a190b0a6
6591 changed files with 94363 additions and 23227 deletions
|
|
@ -1,6 +1,6 @@
|
|||
import grayscale_image;
|
||||
|
||||
void main() {
|
||||
import grayscale_image;
|
||||
|
||||
enum order = 8,
|
||||
margin = 10,
|
||||
width = 2 ^^ order;
|
||||
|
|
@ -8,8 +8,8 @@ void main() {
|
|||
auto im = new Image!Gray(width + 2 * margin, width + 2 * margin);
|
||||
im.clear(Gray.white);
|
||||
|
||||
foreach (y; 0 .. width)
|
||||
foreach (x; 0 .. width)
|
||||
foreach (immutable y; 0 .. width)
|
||||
foreach (immutable x; 0 .. width)
|
||||
if ((x & y) == 0)
|
||||
im[x + margin, y + margin] = Gray.black;
|
||||
im.savePGM("sierpinski.pgm");
|
||||
|
|
|
|||
|
|
@ -0,0 +1,58 @@
|
|||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
/**
|
||||
* SierpinskyTriangle.java
|
||||
* Draws a SierpinskyTriangle in a JFrame
|
||||
* The order of complexity is given from command line, but
|
||||
* defaults to 3
|
||||
*
|
||||
* @author Istarnion
|
||||
*/
|
||||
|
||||
class SierpinskyTriangle {
|
||||
|
||||
public static void main(String[] args) {
|
||||
int i = 3; // Default to 3
|
||||
if(args.length >= 1) {
|
||||
try {
|
||||
i = Integer.parseInt(args[0]);
|
||||
}
|
||||
catch(NumberFormatException e) {
|
||||
System.out.println("Usage: 'java SierpinskyTriangle [level]'\nNow setting level to "+i);
|
||||
}
|
||||
}
|
||||
final int level = i;
|
||||
|
||||
JFrame frame = new JFrame("Sierpinsky Triangle - Java");
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
|
||||
JPanel panel = new JPanel() {
|
||||
@Override
|
||||
public void paintComponent(Graphics g) {
|
||||
g.setColor(Color.BLACK);
|
||||
drawSierpinskyTriangle(level, 20, 20, 360, (Graphics2D)g);
|
||||
}
|
||||
};
|
||||
|
||||
panel.setPreferredSize(new Dimension(400, 400));
|
||||
|
||||
frame.add(panel);
|
||||
frame.pack();
|
||||
frame.setResizable(false);
|
||||
frame.setLocationRelativeTo(null);
|
||||
frame.setVisible(true);
|
||||
}
|
||||
|
||||
private static void drawSierpinskyTriangle(int level, int x, int y, int size, Graphics2D g) {
|
||||
if(level <= 0) return;
|
||||
|
||||
g.drawLine(x, y, x+size, y);
|
||||
g.drawLine(x, y, x, y+size);
|
||||
g.drawLine(x+size, y, x, y+size);
|
||||
|
||||
drawSierpinskyTriangle(level-1, x, y, size/2, g);
|
||||
drawSierpinskyTriangle(level-1, x+size/2, y, size/2, g);
|
||||
drawSierpinskyTriangle(level-1, x, y+size/2, size/2, g);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
#!/usr/bin/env python
|
||||
##########################################################################################
|
||||
# import necessary modules
|
||||
# ------------------------
|
||||
from numpy import *
|
||||
import turtle
|
||||
|
||||
##########################################################################################
|
||||
# Functions defining the drawing actions
|
||||
# (used by the function DrawSierpinskiTriangle).
|
||||
# ----------------------------------------------
|
||||
def Left(turn, point, fwd, angle, turt):
|
||||
turt.left(angle)
|
||||
return [turn, point, fwd, angle, turt]
|
||||
def Right(turn, point, fwd, angle, turt):
|
||||
turt.right(angle)
|
||||
return [turn, point, fwd, angle, turt]
|
||||
def Forward(turn, point, fwd, angle, turt):
|
||||
turt.forward(fwd)
|
||||
return [turn, point, fwd, angle, turt]
|
||||
|
|
@ -1,28 +1,10 @@
|
|||
#!/usr/bin/env python
|
||||
################################################################################################
|
||||
# import necessary modules
|
||||
# ------------------------
|
||||
from numpy import *
|
||||
import turtle
|
||||
################################################################################################
|
||||
# Functions defining the drawing actions (used by the function DrawSierpinskiTriangle).
|
||||
# -------------------------------------------------------------------------------------
|
||||
def Left(turn, point, fwd, angle, turt):
|
||||
turt.left(angle)
|
||||
return [turn, point, fwd, angle, turt]
|
||||
def Right(turn, point, fwd, angle, turt):
|
||||
turt.right(angle)
|
||||
return [turn, point, fwd, angle, turt]
|
||||
def Forward(turn, point, fwd, angle, turt):
|
||||
turt.forward(fwd)
|
||||
return [turn, point, fwd, angle, turt]
|
||||
################################################################################################
|
||||
##########################################################################################
|
||||
# The drawing function
|
||||
# --------------------
|
||||
#
|
||||
# level level of Sierpinski triangle (minimum value = 1)
|
||||
# ss screensize (Draws on a screen of size ss x ss. Default value = 400.)
|
||||
#-----------------------------------------------------------------------------------------------
|
||||
#-----------------------------------------------------------------------------------------
|
||||
def DrawSierpinskiTriangle(level, ss=400):
|
||||
# typical values
|
||||
turn = 0 # initial turn (0 to start horizontally)
|
||||
|
|
@ -73,6 +55,6 @@ def DrawSierpinskiTriangle(level, ss=400):
|
|||
# Draw it.
|
||||
for i in path:
|
||||
[turn, point, fwd, angle, turt]=decode[i](turn, point, fwd, angle, turt)
|
||||
################################################################################################
|
||||
##########################################################################################
|
||||
|
||||
DrawSierpinskiTriangle(5)
|
||||
Loading…
Add table
Add a link
Reference in a new issue