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

[Java3Djp:01641] Z 座標値の取得について2



  △-▲   ε==3−−−ε==3−−−ε==3−−−ε==3−−−  ┌──────┐
 /・ Θヽ        ■■ あなたのほんの少しの愛を!  ■■|\ From   /|
戈 ♀  ヌ ∧-▲  ■  めぐり会い実績1000頭以上    ■│  \ Pet's  │
 冫∞-< /・・ ヽ■  ペットの里親・里子掲示板なら    ■│   \/City│
―ω-ω―ω-ω― ■■http://www.easyml.com/983.php3 ■■└──────┘
------------------------------------------------------------------------


こんにちは。
池田です。

この前、質問させて頂きたいことに引き続き問題が
発生したので、皆さんのお力を借りたく思い、
投稿させて頂きました。

質問の内容というのはこの前教えて頂いたSimpleUniverse
内の物体のZ座標値の取得方法についてなんですが、
方法としては↓の方法で取得することが出来たのですが
処理のスピードが余りにも時間がかかりすぎるので、
もっと早く計算できる方法はないでしょうか?

 public Point3d getPickedCoordinate(Canvas3D c3d,BranchGroup bg,int x,int
y){

  PickObject po=new PickObject(c3d,bg);
     PickRay pr=(PickRay)po.generatePickRay(x,y);
     SceneGraphPath sgp=bg.pickClosest(pr);


  if(sgp!=null){

   double[] dist=new double[1];
     Shape3D shape=(Shape3D)sgp.getObject();

   if(shape instanceof Shape3D){

    shape.intersect(sgp,pr,dist);
    Point3d org=new Point3d();
    Vector3d dir=new Vector3d();
    pr.get(org,dir);
    dir.scaleAdd(dist[0],org);
    org.set(dir);

    return org;
   }
      }

  return null;
}

上の関数は鹿児島大学工学部情報工学科の渕田孝康のページを参考に
させて頂きました。
http://suuri.ics.kagoshima-u.ac.jp/research/3d/java3d-topics/index.html




あとISHIIさんに教えて頂いた↓の方法でも行ったのですが、こちらの方は
計算のスピードは速いのですがresultで出力されるptVWの値の取り出し方
がAPIなどを調べても分かりません。

http://ar1.easyml.com/MLarchive/user/3384/html/msg000000256.php3


どなたかご存知の方、よろしくお願いします。


******************************

   池田浩志
   s021003@xxxxxxxxxxxxxxxxxxxx