私は4つのポイントを持っていますが、これは1つの平面に非常に近いです-それは1,4-ジヒドロピリジンサイクルです。
C3とN1からC1-C2-C4-C5でできている平面までの距離を計算する必要があります。距離の計算はOKですが、平面のフィッティングは私にはかなり難しいです。
1,4-DHPサイクル:
1,4-DHPサイクル、別のビュー:
from array import *
from numpy import *
from scipy import *
# coordinates (XYZ) of C1, C2, C4 and C5
x = [0.274791784, -1.001679346, -1.851320839, 0.365840754]
y = [-1.155674199, -1.215133985, 0.053119249, 1.162878076]
z = [1.216239624, 0.764265677, 0.956099579, 1.198231236]
# plane equation Ax + By + Cz = D
# non-fitted plane
abcd = [0.506645455682, -0.185724560275, -1.43998120646, 1.37626378129]
# creating distance variable
distance = zeros(4, float)
# calculating distance from point to plane
for i in range(4):
distance[i] = (x[i]*abcd[0]+y[i]*abcd[1]+z[i]*abcd[2]+abcd[3])/sqrt(abcd[0]**2 + abcd[1]**2 + abcd[2]**2)
print distance
# calculating squares
squares = distance**2
print squares
合計(平方)を最小化する方法は?最小二乗法を試しましたが、それも私にはありません。