C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

複数の3D点から平面を作成したい2

こちらの続きです。
複数の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を使うか。