Ich versteh die Planes net
-
Hi,
also irgendwie Blick ich durch die handhabung der Planes nicht durch.
Also, bei einer Plane sind die Variablen a,b,c die x,y,z werte des Normalvektors, des Punktes, der bei Verbindung mit der Plane eine senkrechte auf die Plane bilden würde (richtig?). d ist dann die Verschiebung der Plane in Richtung des Normalvektors (von wo aus? Vom 0 Punkt des Koordinatensystems?)Nun gut, mit dem Wissen bau ich mir nun folgende Plane:
D3DXPLANE p; p.d=0.0f; p.a=0.0f; p.b=0.0f; p.c=10.0f;
Dies liefert mir nun genau wie ichs gedacht habe eine horizontale Plane in meiner Welt, genau in der Mitte. Nun müsste aber doch folgendes eine vertikale Plane in der Mitte meiner Welt entstehen:
D3DXPLANE p; p.d=0.0f; p.a=10.0f; p.b=0.0f; p.c=0.0f;
Aber nun tut er auf einmal so, als wäre nirgends eine Plane. Also muss ich ja irgendwas grundlegendes falsch verstanden haben.
Naja, wäre RIESIG wenn mir einer helfen könnte!
Danke schonmal!
-
Bitte helft mir. Das weiß doch bestimmt einer.
-
Original erstellt von <Patrick>:
Aber nun tut er auf einmal so, als wäre nirgends eine Plane.Wer tut so, und wie testest Du es?
-
Der Computer tut so
@TomasRiker: und ich teste es durch Kollision, unzwar mit deiner Funktion:
D3DXVECTOR3 line =LineB - LineA; float nenner=plane.a*line.x+plane.b*line.y+plane.c*line.z; if(fabsf(nenner) < 0.0001f) { if(fabsf(a.x*plane.a+a.y*plane.b+a.z*plane.c+plane.d) < 0.0001f) { if(Out) *Out=a; return true; } else return false; } float s = (plane.a * a.x + plane.b *a.y + plane.c *a.z + plane.d) / (nenner*(-1)); if(s<0.0f) return false; if(s>1.0f) return false; if(Out) *Out=a+(s*line); return true;
-
Und wie sieht die Linie aus, mit der Du die Kollision testest?
-
float mitte=((right+left)/2)+xTrans; D3DXVECTOR3 a(mitte,yTrans,front+zTrans); D3DXVECTOR3 b(mitte,yTrans,back+zTrans); D3DXVECTOR3 line=b-a;
Ich denke, das wird dir nicht viel nützen. Die Variablen right, left, front und back sind die Koordinaten des Randes eines Objektes(eines Autos). Die Linie bildet die die vertikale Trennungen dieses Autos. zTrans,yTrans und xTrans sind die Verschiebung des Aotos im Welt Koordinatensystem.