定義代表三維笛卡爾座標系上某個點的point 類(包括x 、y 、z 三個屬性),為該類定義乙個方法,可接收second 、third 、forth 三個引數,用於計算當前點、second 、third 組成的面與second 、third 、forth組成的面之間的夾角。
a,b,c,d分別對應於提示point1,point2,point3,point4,線段bc是面abc與面dbc的公共邊,計算倆面空間夾角: cos (夾角) = (x·y)/|x||y|,其中x=ab×bc,y=bc×cd,x·y代表x與y的點積,ab×bc代表ab與bc的叉乘
import math
class
point()
:def
__init__
(self,x,y,z)
: self.x = x
self.y = y
self.z = z
defdistance
(self)
: xx =
(self.x)**2
yy =
(self.y)**2
zz =
(self.z)**2
return
(xx + yy + zz)**(
0.5)
defvector
(self,other)
: xx =
(self.x - other.x)
yy =
(self.y - other.y)
zz =
(self.z - other.z)
return point(xx,yy,zz)
defcross
(self,other)
:return point(self.x*other.z-self.z*other.y , self.z*other.x-self.x*other.z , self.x*other.y-self.y*other.x)
defdot
(self,other)
:return
(self.x*other.x + self.y*other.y + self.z*other.z)
# def dot(self, other):
# return point((self.x * other.x),
# (self.y * other.y),
# (self.z * other.z))
defangle
(self,second,third,forth)
: vertor11 = point1.vector(point2)
vertor12 = point1.vector(point3)
vertor21 = point4.vector(point2)
vertor22 = point4.vector(point3)
vertor1 = vertor11.cross(vertor12)
vertor2 = vertor21.cross(vertor22)
return math.acos(
(vertor1.dot(vertor2))/
((vertor1.distance())
*(vertor2.distance())
))point1 = point(0,
1,0)
point2 = point(1,
0,0)
point3 = point(0,
0,0)
point4 = point(0,
0,1)
angels = point1.angle(point2,point3,point4)
print
(math.degrees(angels)
)
直二面角與直三面角
從一條直線出發的兩個半平面所組成的圖形叫做二面角,這條直線叫做二面角的稜,這兩個半平面叫做二面角的面。詳述 平面內的一條直線,把這個平面分為兩部分,每一部分都叫作半平面。從一條直線出發的兩個半平面所組成的圖形叫作二面角。這條直線叫作二面角的稜,這兩個半平面叫作二面角的面。二面角的大小,可以用它的平面...
教您用數學課件製作工具演示線變二面角
中學時代要接觸的幾何知識有很多,二面角就是其中之一,是指從一條直線出發的兩個半平面所組成的圖形,這條直線叫做二面角的稜,這兩個半平面叫做二面角的面。為了幫助學生們了解線變二面角的過程,所以可以製作動態課件進行演示,下面就一起來學習具體製作技巧。幾何畫板作為數學課件製作工具 軟體介面簡潔,易操作,所以...
計算機視覺(二) 常用顏色空間及其轉換
在 計算機視覺 一 影象資料表示 中,我介紹了rgb和灰度兩種顏色空間,並且介紹了畫素的概念以及在程式上如何訪問。接下來介紹從rgb到灰度的轉換,以及兩種我常用的顏色空間hsv和二值空間 嚴格來說屬於灰度,只是只有0和255兩個值 假如先不談原理,rgb轉灰度你會怎麼做?先從我們知道的資訊入手,rg...