[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:01668] Re: BoundingBox について
〜 12月1日新しいビジネスが始まる!ビジネスも楽天、楽天ビジネス誕生 〜
●●●●●●●●●●●●●●●●●●●●●●●●●●●
● サービスリリース第一弾!ビジネスサービス商談市場 ●
●●●●●●●●●●●●●●●●●●●●●●●●●●●
〜〜〜〜〜 今すぐアクセス! http://business.rakuten.co.jp 〜〜〜〜〜
----------------------------------------------------------------------
えんどうです。
ローカル座標中心ではなく
物体のBoundingBoxの中点を得たいのですね?
> Shape3D、あるいはGeometryのクラスのオブジェクトから
> 自動的にBoundingBoxを得るようなメソッドはあるのでしょうか。
> Bounds#getBounds や BoundingBox#BoundingBox(Bounds boundsObject)
> などが使えるのかと思ったのですが、実際の使い方が解りません。
Node#getBounds()でBounds型のオブジェクトが返りますが、
デフォルトではBoundingBox型のインスタンスではないかと推測します。
instanceof演算子で調べてみてください。
> もし自動的にBoundingBoxが得られるとしたら、どのような
> データ形式で帰って来るのでしょうか。
> BoundingBoxが得られたら、その頂点座標を用いて
> オブジェクトの中心座標を得たいと思っています。
もしBoundingBox型のインスタンスならBoundingBox型にキャストして
getUpper(), getLower()メソッドで (Xmax, Ymax, Zmax), (Xmin, Ymin Zmin)
の2点が得られます。
> それに関連してなのですが、オブジェクトから
> それを構成しているポリゴンの頂点座標を得るには
> どうすればよいでしょうか。
> GeometryArray#getCoordRef3d()を使えば良いんじゃないかと
> 考えたのですが、実際の書き方が解りません。
>
> Shape3D objs =(Shape3D)namedobjs.get(objskeyArray[i]);
> Geometry geom = objs.getGeometry();
> objsCoordArray[j] = geom.getCoordRef3f();
>
> と記述したのですが、geomのクラスと getCoordRef3d
> で使えるクラスが違うので、エラーが出ます。
通常は GeometryArray#getCoordinates() で得られます。
BY_REFERENCEの場合は
Point3d[] vertices = geom.getCoordRef3d();
こんな感じでいかがでしょうか。
--
ENDO Yasuyuki <yasuyuki@xxxxxxxxxxxx>
http://www.ss.iij4u.or.jp/~eyasuyuk/ (Personal/Japanese Only)
http://www.javaopen.org/jfriends/ (Japanese Only)