Pythonでのベクトルと行列

ベクトル

ベクトルはhou.Vector3クラスを使う。

正規化

# 正規化
v0 = hou.Vector3((1,1,0))
v0 = v0.normalized()
print(v0)
# [0.707107, 0.707107, 0]

# または
v0 = hou.Vector3((1,1,0)).normalized()

内積

# 内積
v0 = hou.Vector3((0, -1, 0))
v1 = hou.Vector3((0, 1, 0))

d = v0.dot(v1)
print(d)
# -1.0

外積

# 外積
up = hou.Vector3((0, 1, 0))
N = hou.Vector3((0, 0, 1))
left = up.cross(N)

print(left)
# [1, 0, 0]

ベクトルの長さ

v0 = hou.Vector3((0, -1, 0))
v1 = hou.Vector3((0, 1, 0))
L = (v0-v1).length()
print(L)
# 2.0

各成分の取得

# ベクトルから成分を抜き出す
v = hou.Vector3((2, 3, 1))
x = v.x()

print(x)
# 2.0

三角関数

mathモジュールを使う。

import math

# 内積から角度を求める
v0 = hou.Vector3((0, 1, 0))
v1 = hou.Vector3((0, 0, 1))
d = v0.dot(v1)

angle = math.degrees(math.acos(d))
print(angle)
# 90.0

行列

編集中

タイトルとURLをコピーしました