トップページ > 記事閲覧
三点の中心の座標を求める方法
名前:Tir 日時: 2020/03/08 21:28

毎度お世話になっております。 いつもはポリゴンを回転させる時は下記のようなプログラムを使用しています RAngle.x += Rotx; RAngle.y += Roty; RAngle.z += Rotz; MATRIX TransformMatrix; // 回転( x, y, z軸回転の順 )+座標移動行列の作成 TransformMatrix = MGetRotX(RAngle.x); TransformMatrix = MMult(TransformMatrix, MGetRotY(RAngle.y)); TransformMatrix = MMult(TransformMatrix, MGetRotZ(RAngle.z)); TransformMatrix = MMult(TransformMatrix, MGetTranslate(VGet(X, Y, Z))); // 行列を使ってワールド座標を算出 //TZに数値が入っていると回転し出す Vertex[0].pos = VTransform(VGet(-ImgSizeX, ImgSizeY, 0.0f), TransformMatrix); Vertex[1].pos = VTransform(VGet(ImgSizeX, ImgSizeY, 0.0f), TransformMatrix); Vertex[2].pos = VTransform(VGet(-ImgSizeX, -ImgSizeY, 0.0f), TransformMatrix); Vertex[3].pos = VTransform(VGet(ImgSizeX, -ImgSizeY, 0.0f), TransformMatrix); Vertex[4].pos = Vertex[2].pos; Vertex[5].pos = Vertex[1].pos; // 行列を使って法線を算出 Vertex[0].norm = VTransformSR(VGet(0.0f, 0.0f, -1.0f), TransformMatrix); Vertex[1].norm = Vertex[0].norm; Vertex[2].norm = Vertex[0].norm; Vertex[3].norm = Vertex[0].norm; Vertex[4].norm = Vertex[0].norm; Vertex[5].norm = Vertex[0].norm; この場合描画するポリゴンが四角形で中心座標が決まっている場合が多いです 今回は三角形でランダムに選ばれた三点の座標から直接三角形を描画する事になったのですが この場合中心座標が分からず上記のような方法では回転させられずに困っています。 三点の中心の座標を求める方法かもしくは中心座標が分からずとも上記のように画像を回転させられる方法はありますでしょうか?
メンテ

Page: 1 |

Re: 三点の中心の座標を求める方法 ( No.1 )
名前:管理人 日時:2020/03/09 05:06

三点の中心座標の求め方は一般的には 中心座標x = ( 1個目の座標x + 2個目の座標x + 3個目の座標x ) / 3 中心座標y = ( 1個目の座標y + 2個目の座標y + 3個目の座標y ) / 3; なのですが、この計算式では不都合があるのでしょうか?
メンテ
Re: 三点の中心の座標を求める方法 ( No.2 )
名前:Tir(解決) 日時:2020/03/09 07:48

そんな単純な計算式で求められたんですね… 自分の調べ方が悪かったのか調べても3点を通る円の中心や重心・外心・内心等複雑な計算式ばっかり出てきて困っていました これで目的の動作が出来そうです。ありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存