こちらの続きです。
複数の3D点から平面を作成したい1 - C#ATIA
神に近い存在に平面フィッティングを行うコードを教わる事に
したのですが、案の定NumPyとSciPyを使用したものでした。
そこで食い下がったのですが、
再度”そこを何とか”としましたが、答えが変わらず・・・。
諦めました。
使った場合のコードはこんな感じでした。
import numpy as np from scipy.linalg import svd def fit_plane(points): # データ行列を作成 A = np.column_stack((points[:, 0], points[:, 1], np.ones(len(points)))) # 特異値分解(SVD)を実行 _, _, V = svd(A) # 最小特異値に対応する固有ベクトルを取得 normal = V[-1, :-1] d = V[-1, -1] # ベクトルの正規化 normal /= np.linalg.norm(normal) return normal, d
仕方が無いので、NumPyとSciPyを使うか。