[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Java3Djp:00222] マウスの座標の変換



◆中国風水界の若手ホープ◆

      ★結婚、金運、事業運、命名、改名などを観ていただけます。
          ★ 企業、個人を問いません。
              ★ 視ていただく方を紹介していただければ、謝礼致します。
 
    お問い合わせ先:奉天風水会 sakur19@xxxxxxxxxx
--------------------------------------------------------------------

つきやまです。

マウスの座標を3D内の座標に変換する方法ですが、

com.sun.j3d.utils.behavior.picking.PickObjectのgeneratePickRay()の
中で使用されています、

canvas.getPixelLocationInImagePlate(xpos,ypos,mousePosn)

で取得できているようです。

int xpos:マウスの座標(Canvas3Dの座標)
int ypos:マウスの座標(Canvas3Dの座標)
Point3d mousePosn:3D内の座標

遠藤さんのご指摘の通り、XY平面で有効です。

しかし、generatePickRay()を書き換えて座標をリターンするように行うと
きちんと座標がとれるのですが、

PickObject pickObject = new PickObject(canvas, rootNode);
...
Point3d point = pickObject.genaratePickRay_(x, y)

上のメソッドを単独で使用すると、座標のスケールが違うのか値が正確では
ありません。

canvas.getPixelLocationlnImagePlate(x, y, point);

何か見落としているところがあるのでしょうか?

Mitsuru Tsukiyama