こんにちはイマイです
最近書いてあるARKitのアプリで3次次元空間の3点で作れる面の面積を求めたいなぁと
思ったので実装方法を考えてみました。
調べてみると公式見当たりませんでしたね…
(ご存知の方がいましたらご教授ください)
以下のサイトをみると意外と簡単にベクトルを使って計算できるみたいなんで実装してみました。
エクセルを用いた3次元空間上の三角形の面積計算
null
public void CalculateArea(){ //3点の初期化 Vector3 A = new Vector3(1, 2, 5); Vector3 B = new Vector3(3, 1, 5); Vector3 C = new Vector3(3, 3, 5); //BベクトルとCベクトルの外積を求める Vector3 D = Vector3.Cross(B-A,C-A); //平行四辺形の面積を求めて2で割る float S = D.magnitude / 2; Debug.Log(S); }
magnitudeはベクトルの長さを返してくれます
Unity – スクリプティング API: Vector3.magnitude
あなたの作品をどこへでも!Unityはゲームやグラフィカルなアプリケーションを開発するための最高の開発環境です。Unityで作れば、Webブラウザ、Windows, Mac OS X, iOS, Android, PlayStation 4やWii U, Xbox Oneなどのゲーム機、さらに多くの幅広いプラットフォームで展開できます。
普通のゲームで使い道なさそうですね…
[…] Unityで面積を求めたい 3Dの場合 […]