自己レスです。
> CPoint3D pnt((p2.x - p3.x) * 0.5, (p2.y - p3.y) * 0.5, (p2.z - p3.z) * 0.5); ↑これ間違えてました。(^^; CPoint3D pnt((p2.x + p3.x) * 0.5, (p2.y + p3.y) * 0.5, (p2.z + p3.z) * 0.5); こうですね。
return CPoint3D( p1.x + (pnt.x - p1.x) * CENTEROFGRAVITYRATIO, p1.y + (pnt.y - p1.y) * CENTEROFGRAVITYRATIO, p1.z + (pnt.z - p1.z) * CENTEROFGRAVITYRATIO); ちなみに、何故わざわざ掛け算を使ってるかというと CPUは割り算よりも掛け算の方が得意だからです。(だそうです。いつか確認します。) (いちいちクラスで返すと遅いかなぁー)
ではでは。
|