Julia set: Difference between revisions

Content added Content deleted
mNo edit summary
m (Added Processing)
Line 497: Line 497:
}
}
( $r, $g, $b ) = map { (($_+$m) * 255).Int }, $r, $g, $b;
( $r, $g, $b ) = map { (($_+$m) * 255).Int }, $r, $g, $b;
}</lang>

=={{header|Processing}}==
<lang java>void setup() {
size(640, 480);
}

float cX = -0.7;
float cY = 0.27015;
float zx, zy;
float maxIter = 300;

void draw() {
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
zx = 1.5 * (x - width / 2) / (0.5 * width);
zy = (y - height / 2) / (0.5 * height);
float i = maxIter;
while (zx * zx + zy * zy < 4 && i > 0) {
float tmp = zx * zx - zy * zy + cX;
zy = 2.0 * zx * zy + cY;
zx = tmp;
i -= 1;
}
color c = hsv2rgb(i / maxIter * 360, 1, i > 1 ? 1 : 0);
set(x, y, c);
}
}
noLoop();
}

color hsv2rgb(float h, float s, float v) {
float c = v * s;
float x = c * (1 - abs(((h/60) % 2) - 1));
float m = v - c;

float r, g, b;
if (h < 60) {
r = c;
g = x;
b = 0;
} else if (h < 120) {
r = x;
g = c;
b = 0;
} else if (h < 180) {
r = 0;
g = c;
b = x;
} else if (h < 240) {
r = 0;
g = x;
b = c;
} else if (h < 300) {
r = x;
g = 0;
b = c;
} else {
r = c;
g = 0;
b = x;
}

int ri = round((r + m) * 255);
int gi = round((g + m) * 255);
int bi = round((b + m) * 255);

return color(ri, gi, bi);
}</lang>
}</lang>