平面ax + by + cz + d = 0の法線ベクトルを計算しています
本によると:
法線ベクトルNは、単位長に正規化されることがよくあります。その場合、方程式
d = N ⋅Q + D
は、平面から任意の距離までの符号付き距離を与えるためです。点Q。d= 0の場合、点Qは平面内にあります。 d> 0の場合、Qは法線ベクトルが指す側にあるため、点Qは平面の正の側にあると言います。
N(法線ベクトル)を取得するにはどうすればよいですか?ありがとう
回答
平面を指定
次に、法線ベクトルは
通常の単位ベクトル n は次の式で与えられます:
したがって、平面の場合5x+2y+3z-1=0
、
法線ベクトル N は
N = [5,2,3]
大きさ | N | は
| N | = sqrt(5 ^ 2 + 2 ^ 2 + 3 ^ 2)
| N | = 6.1644
通常の単位ベクトル n はしたがっておおよそ:
n = N / | N |
n = [0.8111、0.3244、0.4866]
n の長さを測定することで確認できます。
コード:
import math def mag(V): return math.sqrt(sum([x*x for x in V])) def n(V): v_m = mag(V) return [ vi/v_m for vi in V]
インタラクティブなPythonシェルの場合:
>>> N = [5,2,3] >>> mag(N) 6.164414002968976 >>> n(N) [0.8111071056538127, 0.3244428422615251, 0.48666426339228763] >>> mag(n(N)) 1.0