[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