web-dev-qa-db-ja.com

2D三角形の中心を見つけますか?

X座標とy座標、回転変数などを含む2D三角形の構造体が与えられました。これらのx座標とy座標によって作成されたポイントから、ポイントの周りに三角形を描画し、回転変数を使用して適切に回転させることになっています。

私は、OpenGlでGL_TRIANGLESを使用して三角形を描画することに精通しています。私の問題は、どういうわけか三角形の中央を抽出し、その周りに頂点を描くことです。

編集:はい、私が探しているのは図心です。

19
ray

三角形の中心にはさまざまな「タイプ」があります。詳細: 三角形の中心 。三角形の中心を見つける簡単な方法は、すべてのポイントの座標を平均することです。例えば:

GLfloat centerX = (tri[0].x + tri[1].x + tri[2].x) / 3;
GLfloat centerY = (tri[0].y + tri[1].y + tri[2].y) / 3;

中心を見つけたら、中心を中心に三角形を回転させる必要があります。これを行うには、中心が(0、0)になるように変換します。ローテーションを実行します。ここで、前に実行した翻訳を逆にします。

37
strager

三角形の重心のことだと思います!?
これは1/3(A + B + C)で簡単に計算できます。ここで、A、B、Cは三角形のそれぞれの点です。ポイントがある場合は、通常どおり、ポイントに回転行列を掛けることができます。私があなたを正しくしたことを願っています。

6
newgre

三角形には、その中心と見なすことができるいくつかの点があります(垂心、図心など)。 三角形に関するウィキペディアの記事のこのセクション 詳細があります。写真を見るだけで、概要がわかります。

2
gclj5

「中央」とは、一定の厚さと密度の3Dオブジェクトである場合、「重心」、つまり重心を意味しますか?

もしそうなら、2つのポイントを選び、それらの間の中間点を見つけます。次に、この中点と3番目の点を取り、それらの間の1/3の距離(中点に近い)の点を見つけます。それがあなたの重心です。私はあなたのために数学をしていません。

0
Chris Lutz