Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - BFK

Pages: [1]
1
German corner / Screen-Koordinaten in 3D-Koordinaten umwandeln
« on: February 01, 2013, 01:47:14 pm »
Hallo,
Ich experementiere gerade mit der jPCT-Engine ein wenig rum und stehe schon vor einem wesentlichen wichtigem Problem. Ich möchte gern Screen-Koordinaten in 3D-Koordinaten umwandeln (Das umgekehrte funktioniert einwandfrei). Mein Ziel ist es ein Object3D an der gedrückten stelle zu bewegen. Ich weiss es gibt viele Beiträge zu diesem Thema. Habe mir zum Beispiel den Picking-Beitrag gelesen http://www.jpct.net/wiki/index.php/Picking , aber auch andere Beiträge hier im Forum. Leider kriege ich das nicht zum Laufen. Vielleicht könnte mir jemand dabei helfen.

Hier erstmal der Code:
Code: [Select]
private SimpleVector convertScreenPixelsTo3D(int x, int y)
{
        SimpleVector direction = new SimpleVector( Interact2D.reproject2D3DWS(world.getCamera(), fb, x, y ) ).normalize();

        float distance = world.calcMinDistance(world.getCamera().getPosition(), direction, 10000 );
       
        SimpleVector point = new SimpleVector( direction );
        point.scalarMul( distance );
        point.add(world.getCamera().getPosition() );
       
       
        return point;
     }

Bei onTouch-Event "ACTION_DOWN" habe ich dann folgendes:
Code: [Select]
int x = (int)me.getX();
        int y = (int)me.getY();
       
        SimpleVector sv = convertScreenPixelsTo3D(x, y);
        Log.i(TEST-JPCT,"Point in Screen Pixels..: ("+x+","+y+")");
        Log.i(TEST-JPCT,"Point in 3D..: "+sv.toString());
       
        poly.clearTranslation();
        poly.translate(sv);

wobei "poly" ein Object3D ist.

Wie es aussieht sind die Berechnungen von "convertScreenPixelsTo3D" falsch, denn poly bewegt sich zwar, aber lerider nicht an der gewünschten (ge-touchten Stelle).

Was mache ich falsch..?

Pages: [1]