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

[Java3Djp:01672] Re: BoundingBox について



 〜 12月1日新しいビジネスが始まる!ビジネスも楽天、楽天ビジネス誕生 〜
         ●●●●●●●●●●●●●●●●●●●●●●●●●●●
         ● サービスリリース第一弾!ビジネスサービス商談市場 ●
         ●●●●●●●●●●●●●●●●●●●●●●●●●●●
〜〜〜〜〜 今すぐアクセス! http://business.rakuten.co.jp 〜〜〜〜〜
----------------------------------------------------------------------

八嶋です。回答ありがとうございます。

> ローカル座標中心ではなく
> 物体のBoundingBoxの中点を得たいのですね?

そうです。

> Node#getBounds()でBounds型のオブジェクトが返りますが、
> デフォルトではBoundingBox型のインスタンスではないかと推測します。
> instanceof演算子で調べてみてください。

BoundingBoxでした。

> もしBoundingBox型のインスタンスならBoundingBox型にキャストして
> getUpper(), getLower()メソッドで (Xmax, Ymax, Zmax), (Xmin, Ymin Zmin)
> の2点が得られます。

プログラムに以下のように書きました。

      BoundingBox objBounds = (BoundingBox)objs.getBounds();
      Point3d upperVertex = objBounds.getLower();
      Point3d lowerVertex = objBounds.getUpper();

BoundingBox型にキャストするというのは、1行目のように書くということですか?
1行目はエラーは出ませんでした。
2、3行目に関しては  

" getUpper() に適合するメソッドが 
class javax.media.j3d.BoundingBox にはありません。"

というエラーが出ました。getLowerの使い方がまちがっているから
ということは分かっています。getLower(Point3d p1)のp1には
座標をいれるんでしょうか?どこの座標をいれるのですか?
本当はインスタンスを引数としてとるか、あるいはメソッドとして
getLowerがはたらいて、x、y、z座標を返してくれることを
期待しているのですが。


> > それに関連してなのですが、オブジェクトから
> > それを構成しているポリゴンの頂点座標を得るには
> > どうすればよいでしょうか。
> > GeometryArray#getCoordRef3d()を使えば良いんじゃないかと
> > 考えたのですが、実際の書き方が解りません。
> > 
> >       Shape3D objs =(Shape3D)namedobjs.get(objskeyArray[i]);
> >       Geometry geom = objs.getGeometry();
> >       objsCoordArray[j] = geom.getCoordRef3f();
> >  
> > と記述したのですが、geomのクラスと getCoordRef3d
> > で使えるクラスが違うので、エラーが出ます。
> 
> 通常は GeometryArray#getCoordinates() で得られます。

上と同様な質問なのですが、たしかにgetCoordinates()
で得られるんじゃないかと考えました。でも、使い方として
getCoordinate(int index, Point3d coordinate) となるとき、
indexとcoordinateには何をいれれば良いのか分かりませんでした。
また、やはりx、y、z座標を返してくれることを
期待しています。APIを見た限りでは、voidなので
何かのデータを返してくれるようには思えませんでした。
もしかしてすごくばかな勘違いをしているのかも知れませんが…。 

> BY_REFERENCEの場合は
> 
>  Point3d[] vertices = geom.getCoordRef3d();
> 
> こんな感じでいかがでしょうか。

BY_REFERENCEはGeometryArrayのインスタンスの
位置などの座標を特定するためのものとありますが、
具体的には何をしてくれるんでしょうか。
記述としては
geom.setCapability(GeometryArray.BY_REFERENCE)
とすると、GeometryからGeometryArrayクラスの
メソッドで座標をとれるようになりますか?

よろしくお願いします。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
八嶋 栄美子
   
東京工業大学 情報理工学研究科
計算工学専攻 中嶋研 修士1年

Email:yassie@xxxxxxxxxxxxxxxxxxx
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-