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

[Java3Djp:00239] 形状のピッキング



はじめまして。
岩倉と申します。

形状のピッキングについて質問させていただきます。

public class MyCanvas3D extends Canvas3D

としたなかで、

SimpleUniverse->BranchGroup(root)+->BranchGroup1->TransformGroup(Sphere)
                                 |
                                 +->BranchGroup2->TransformGrpup(Point)
                                 |
                                 +->PickMouseBehavior

として、三次元空間上の中心に球と点を表示しています。
太陽系の太陽と惑星のような感じです。
#SphereとPointがBranchGroupでつなげているのは、形状を
#表示したりしなかったりするため。

視点を変更すると、球の裏に点が移動する感じになりますが、
ピッキングを可とすると、前面に見える球の裏側にある点が
選択される場合があります。
見かけ上見えなくても、そのピッキング位置に平面上、近い位置に
ある場合はピッキング対象となるようです。
球の陰に配置された点をピッキング対象から外す方法というのは
あるのでしょうか。

ピッキングの対象範囲を絞るにしても、3次元空間的には、
始点位置から球の反対側に点があっても、見かけ上その点が
その視点位置から見える場合は、ピッキング対象としたいため、
ちょっと難しいです。

何かいい方法がありますでしょうか。

java2sdk:1.4.2_06
java3sdk:1.3

-- 
岩倉 隆裕 <iwakura.takahiro@xxxxxxxxx>