-
Notifications
You must be signed in to change notification settings - Fork 0
/
randcolorlinesym01.java
93 lines (86 loc) · 1.99 KB
/
randcolorlinesym01.java
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
// draw symbols or lines with random color
// by using mouse attributes / functions
void setup() {
size(640, 480);
noSmooth();
background(0);
}
boolean changeColor = true;
boolean drawModeLines = false;
boolean drawLine = false;
int drawSymbol = -1;
int drawColor = 0;
int symbolWidth = 10;
int symbolHeight = 10;
void draw() {
if (changeColor == true) {
int r = int(random(255));
int g = int(random(255));
int b = int(random(255));
drawColor = color(r, g, b);
changeColor = false;
}
}
void mousePressed() {
drawSymbol = int(random(4)); // todo random symbol
}
void mouseDragged() {
if (drawModeLines == false && drawSymbol > -1) {
switch (drawSymbol) {
case 0:
// square
noStroke();
fill(drawColor);
rect(
mouseX-symbolWidth/2, mouseY-symbolHeight/2,
symbolWidth, symbolHeight
);
break;
case 1:
// ellipse
noStroke();
fill(drawColor);
ellipse(mouseX, mouseY, symbolWidth, symbolHeight);
break;
case 2:
// triangle
noStroke();
fill(drawColor);
triangle(
mouseX-symbolWidth/2, mouseY+symbolHeight/2,
mouseX, mouseY-symbolHeight/2,
mouseX+symbolWidth/2, mouseY+symbolHeight/2
);
break;
case 3:
// x cross
noFill();
stroke(drawColor);
line(
mouseX-symbolWidth/2, mouseY-symbolHeight/2,
mouseX+symbolWidth/2, mouseY+symbolHeight/2
);
line(
mouseX-symbolWidth/2, mouseY+symbolHeight/2,
mouseX+symbolWidth/2, mouseY-symbolHeight/2
);
break;
}
} else if (drawModeLines == true) {
noFill();
stroke(drawColor);
line(width/2, height/2, mouseX, mouseY);
}
}
void mouseReleased() {
changeColor = true;
drawSymbol = -1;
drawLine = false;
}
void keyPressed() {
if (drawModeLines == true) {
drawModeLines = false;
} else {
drawModeLines = true;
}
}