www.jpct.net
General => German corner => Topic started by: Telix on December 06, 2013, 10:31:25 am
-
Hallo zusammen,
lang ist es her aber nun eine neue Frage :)
Wie kann ich mit reproject2D3DWS ein "pick" machen ohne Object?
Ich bekomme ja denke ich mit reproject2D3DWS die Daten abhängig der Kamera im Wert von -0.5 -> 0.5 in beide Seiten?
Frage wie berechne ich nun die X,Y,Z Kordinate dazu?
Vielen Dank! :)
-
Ja, das geht ganz normal mit reproject...du bekommst als Ergebnis die 3d-Koordinaten, allerdings musst du vorher bereits die Tiefe z in 3d mit übergeben. Denn du kannst ja nicht 3 Unbekannte an 2 Unbekannten berechnen und pro 2d-Punkt gibt es unendlich viele Punkte in 3d, die auf diesen abgebildet werden.
-
public final SimpleVector get3DPoint(MouseEvent e, SimpleVector refPoint) {
SimpleVector result = Interact2D.reproject2D3DWS(camera, buffer,
e.getX() * SAMPLING_MODE_MULTIPLICAND,
e.getY() * SAMPLING_MODE_MULTIPLICAND).normalize();
result.scalarMul(camera.getPosition().distance(refPoint));
result.add(camera.getPosition());
return result;
}
To compute a point
1) in the direction of the point of the mouse event and
2) at the same distance from the camera as the reference point.
SAMPLING_MODE_MULTIPLICAND depends on your sampling mode
Hope that helps =)