-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathKarlar.pde
More file actions
95 lines (74 loc) · 2.01 KB
/
Karlar.pde
File metadata and controls
95 lines (74 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
ArrayList<KarTanesi> karlar = new ArrayList<KarTanesi>();
PImage img = createImage(264, 264, ARGB);
void setup() {
size(1200, 900, P3D);
img.loadPixels();
for (int i = 0; i < img.pixels.length; i++) {
img.pixels[i] = color(random(0, 20), random(50, 110), random(20, 60));
}
img.updatePixels();
for (int i = 0; i < 5000; i++) {
karlar.add(new KarTanesi());
}
}
int ara = 65;
int hizUst = 7;
int sinir = 600;
void draw() {
background(0);
camera(0, 140, 350, 0, 0, 0, 0, -1, 0);
img.loadPixels();
for (int i = 0; i < karlar.size(); i++) {
karlar.get(i).kendiniCiz();
}
noStroke();
img.updatePixels();
textureMode(NORMAL);
beginShape();
texture(img);
vertex(-sinir, 0, -sinir, 0, 0);
vertex(sinir, 0, -sinir, 1, 0);
vertex(sinir, 0, sinir, 1, 1);
vertex(-sinir, 0, sinir, 0, 1);
endShape();
}
class KarTanesi {
public int x, y, z;
public int vx, vy, vz;
public KarTanesi() {
x = (int) random(-sinir, sinir);
y = (int) random(height);
z = (int) random(-sinir, sinir);
vx = (int) random(-hizUst, hizUst);
vy = (int) random(-hizUst, 0);
vz = (int) random(-hizUst, hizUst);
}
public void kendiniCiz() {
strokeWeight((((float)z)/sinir + 1.2) * 5);
stroke(255);
point(x, y, z);
x += vx;
y += vy;
z += vz;
if (z < -sinir || z > sinir || x < -sinir || x > sinir) {
x = (int) random(-ara*15, ara*15);
y = (int) random(height);
z = (int) random(-ara*15, ara*15);
vx = (int) random(-hizUst, hizUst);
vy = (int) random(-hizUst, -hizUst/2);
vz = (int) random(-hizUst, hizUst);
}
if (y < 0) {
int i = (int) ((((float)x/sinir) + 1) * (img.width / 2));
int j = (int) ((((float)z/sinir) + 1) * (img.height / 2));
if (i >= img.width) {
i = img.width - 1;
}
if (j >= img.height) {
j = img.height - 1;
}
img.pixels[j * img.width + i] = lerpColor(img.pixels[j * img.width + i], color(255), .1);
y = (int) random(15*ara);
}
}
}