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

[Java3Djp:00506] 視点を移動した時のマウスに対応するVU空間の座標



┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃                ソフトウェア業界専門求人・求職情報                ┃
┃                    http://www.aun-soft.co.jp/                    ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

つきやまです。
こんばんは。

視点を自動的に設定した時

 universe = new SimpleUniverse(canvas);
 universe.getViewingPlatform().setNominalViewingTransform();

は、次のような変換でZ = 0.0平面にドラッグで線が描画できました。
(PickObject.javaのgenaratePickRay()を参考にしました)

 public Point3d getPoint(Canvas3D canvas, int xpos, int ypos){

  Transform3D motion = new Transform3D();
   Point3d mousePosn = new Point3d();

    canvas.getPixelLocationInImagePlate(xpos,ypos,mousePosn);
    canvas.getImagePlateToVworld(motion);

    motion.transform(mousePosn);

    return mousePosn;  //VUの座標(X,Y)を返す
 }
(今思うとたまたまです。。。)

しかし、この方法では視点をZ方向に移動した時にマウスが指しているポイントと
線を描画するポイントがずれてしまいます。
(X,Y平面方向に視点を移動してもずれません)

何か解決方法はないでしょうか。
よろしくお願いします。

Mitsuru Tsukiyama