四面体について、まとめる。
- 四面体において、ピタゴラスの定理、Cos則があるらしい。
- 確認する
import numpy as np
#a = np.array([[0,1,2], [1,2,3],[2,4,6]])
def area(a,b,c):
d = np.dot(a-b,a-c)
x = np.dot(a-b,a-b)
y = np.dot(a-c,a-c)
return np.sqrt(x*y - d*d)/2
a = np.array([0,1,2])
b = np.array([1,2,3])
c = np.array([2,4,6])
sa = area(a,b,c)
print(sa)
print(np.sqrt(6)/2)
- まず、3次元上での3点の作る三角形の面積を求める部分を作る
import numpy as np
#a = np.array([[0,1,2], [1,2,3],[2,4,6]])
def area(a,b,c):
d = np.dot(a-b,a-c)
x = np.dot(a-b,a-b)
y = np.dot(a-c,a-c)
return np.sqrt(x*y - d*d)/2
a = np.array([2,0,0])
b = np.array([0,3,0])
c = np.array([0,0,6])
o = np.array([0,0,0])
sa = area(a,b,c)
sb = np.sqrt(area(a,b,o)**2+area(a,o,c)**2+area(o,b,c)**2)
print(sa)
print(sb)
- x軸、y軸、z軸上の3点をとる三角形の面積を、それらのうちの2点と原点からなる三角形の2乗和の平方根として、表す
- これを、4面体バージョンに拡張してみる。
import numpy as np
#a = np.array([[0,1,2], [1,2,3],[2,4,6]])
def area(a,b,c):
d = np.dot(a-b,a-c)
x = np.dot(a-b,a-b)
y = np.dot(a-c,a-c)
return np.sqrt(x*y - d*d)/2
def vol(a,b,c,d):
m = a+b+c+d
v = 1
for i in range(4):
if m[i]!=0:
v *= m[i]
return v/6
a = np.array([1,0,0,0])
b = np.array([0,1,0,0])
c = np.array([0,0,1,0])
d = np.array([0,0,0,1])
o = np.array([0,0,0,0])
va = np.sqrt(2)/12*(np.sqrt(2)**3)
print(va)
- ちゃんと、同じ体積になっている。
- これから想定されることは、単体的複体の大きさについて、複数の扱いやすい単体複体の二乗の和の平方根で表される、という性質がある、ということだ。
- n次元空間では、n-1次元の物体について、考える。というように、考えたい対象に合わせて、注目する次元を合わせる。
バイバイ!