Numpy での ベクトル処理

import numpy as np

a = np.array([1.0, 2.0, 3.0])
b = np.array([4.0, 5.0, 6.0])

a = a / np.linalg.norm(a)
b = b / np.linalg.norm(b)

np.dot(a, b)
np.cross(a, b)

面法線の求め方

import numpy as np

v0 = np.array([0.0, 0.0, 0.0])
v1 = np.array([0.0, 0.0, 0.0])
v2 = np.array([0.0, 0.0, 0.0])

t0 = v1 - v0
t1 = v2 - v0

n = np.cross(t0, t1)
print(n)

外積はかける順番で結果が異なる(法線の方向が逆を向く)ので注意。

下記記事を参考にさせて頂きました。素晴らしい記事をありがとうございます。
https://deepage.net/features/numpy-dot.html

コメントを残す

メールアドレスが公開されることはありません。