soo bin etwas weiter gekommen
ich teile nun die Raute in 2 Dreiecke auf (oben und unten). Bringt theoretisch gesehen genau so wenig, allerdings praktisch schon, da ich online eine Formel gefunden habe, mit der man überprüfen kann ob ein Punkt in einem Dreieck liegt
sieht im Code wie folgt aus:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
int mrx = (int) (x + camx - 30);
int mry = (int) (y + camy);
int x1, x2, x3 = 0;
int y1, y2, y3 = 0;
for (int ymap=0; ymap<maphight; ymap++)
{
for (int xmap=0; xmap<mapwidth; xmap++)
{
int py = map[ymap][xmap].getframeypos();
int px = map[ymap][xmap].getframexpos();
x1 = px + (twidth/2);
x2 = px;
x3 = px + twidth;
y1 = py;
y2 = py + (thight/2);
y3 = py + (thight/2);
//x1 * a + x2 * b + x3 * c = mrx
// y1 * a + y2 * b + y3 * c = mry
// 1 * a + 1 * b + 1 * c = 1
}
}
|
wie man im Code erkennt beschreibt es die obere Hälfte des Dreiecks. Liegen nun a,b & c zwischen 0 und 1 liegt der Punkt im Dreieck !
ich weiß jetzt nur nicht wie ich das in Java lösen soll (in Mathe macht dies ja eig. der Taschenrechner
)
mfg
SD