-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathe_Angles.pde
73 lines (64 loc) · 1.72 KB
/
e_Angles.pde
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
float aAngle;
float bAngle;
float cAngle;
float dAngle;
float eAngle;
float fAngle;
float gAngle;
float hAngle;
float angleRange = 25;
float minimumCheckScore = 3;
void getAngles() {
aAngle = getAngle("a");
bAngle = getAngle("b");
cAngle = getAngle("c");
dAngle = getAngle("d");
eAngle = getAngle("e");
fAngle = getAngle("f");
gAngle = getAngle("g");
hAngle = getAngle("h");
}
boolean checkAngles() {
//Angles retrieval
getAngles();
//Score is set to 0 before iteration on every angle
int score = 0;
//Character data retrieval
Character character = characters[currentCharacter];
int angles[] = character.angles;
//Angles check (TO REWRITE IN A MORE GENERIC WAY)
if (aAngle > (angles[0] - angleRange) && aAngle < (angles[0] + angleRange)) {
score++;
}
if (bAngle > (angles[1] - angleRange) && bAngle < (angles[1] + angleRange)) {
score++;
}
if (cAngle > (angles[2] - angleRange) && cAngle < (angles[2] + angleRange)) {
score++;
}
if (dAngle > (angles[3] - angleRange) && dAngle < (angles[3] + angleRange)) {
score++;
}
if (eAngle > (angles[4] - angleRange) && eAngle < (angles[4] + angleRange)) {
score++;
}
if (fAngle > (angles[5] - angleRange) && fAngle < (angles[5] + angleRange)) {
score++;
}
if (gAngle > (angles[6] - angleRange) && gAngle < (angles[6] + angleRange)) {
score++;
}
if (hAngle > (angles[7] - angleRange) && hAngle < (angles[7] + angleRange)) {
score++;
}
//Score threadsold check
if (score >= minimumCheckScore) {
return true;
}
return false;
}
//Get angle between two vectors
float angleOf(PVector one, PVector two, PVector axis) {
PVector limb = PVector.sub(two, one);
return degrees(PVector.angleBetween(limb, axis));
}