2011-08-05 8 views
2

私は中心、長さ、高さがわかっている長方形のすべての頂点を取得する方法を探しています。私は数学で少し弱いので、私を助けてください。 編集:飛行機は3D空間にあります。センター、ノーマル、レングス、および高さで長方形の頂点を取得

+0

"center、normal、length and height"は3Dでは十分ではありません。 「原点、z軸、2単位、1単位」とお伝えします。今や、原点を中心とし、xy平面内に横たわる任意の* 2×1の長方形は、これらの基準を満たす。 – AakashM

+0

同様の質問、それはOPだけ側面の1つを望んでいるようです:http://stackoverflow.com/questions/6503871/convert-a-normal-rectangle-to-a-set-of-gles-vectors – user786653

答えて

1

中心点のx/y位置から幅/高さの半分を減算/加算することで、中心、幅、高さを考慮して、2D空間内の矩形の頂点のx座標とy座標を簡単に計算できます。

これが3D空間で必要な場合、これはややこしくなり、少しの三角法に依存しますが、同じ原則に従います。余分な情報が1つ必要です。正方形の向きをある方向に固定する方法が必要です。すなわち、どの方向が「直面する」矩形であるかを示す。法線では、矩形がどの平面にあるのかを調べることができますが、その平面には何も配置されていないので、各頂点の中心を囲む円の可能な値の集合を計算することができます。

+0

これは長方形が軸に整列している場合にのみ動作しますが、私はOPが "普通"と記述しているので、ここではそうは思いません。 – user786653

+0

@ user786653:はい、あなたは正しいです、と私は具体的に上記の数学は2空間のみのためだと言いました。 3次元空間でポイントを修正するには、通常よりも多くの角度を必要とします。向きを固定するには何らかの方法が必要です。そうでなければ、ポイントがどこにあるかを特定する方法はありません。法線によって与えられる平面上の中心。 –

+0

私が言ったことは、OPはおそらく(2dのベクトルクラスを仮定して)何かを探しているということでした: 'topleft = center + normal * vec2(-width/2,0)+ vec2(-normal.y、normal.x) * vec2(-height/2,0) 'もちろん、私は何を意味するのか分からない。 – user786653

関連する問題