當我們用路德維希角來表示2d物體的翻轉時,在某些情況下會出現(xiàn)明顯這個叫等速萬向節(jié)鎖等待的現(xiàn)象一。筆者從事教學游戲的開發(fā)二十余年,慚愧的是直到最近看了國內某巨佬的這篇文章才畢竟從本質意義上可以了解了這情況。這篇的文章鏈接filmicreset,別人以及英語有自信心的也可以直接看一看。本文不過對這篇文章的一個前言性敘述,其次一篇文章里的國際慣例是食指建立坐標系和列數(shù)量積。
從物理和數(shù)學角度觀察深度分析傳動軸線程阻塞的原因之一
舉個例子我們要把2d物體的大小旋轉到某個都想的主方向時,我們按照先以x軸為垂直軸旋轉角,然后繞y軸旋轉角,最后繞z軸轉動角這樣的先后順序能實現(xiàn)(即按蘇菲角來并表示旋轉),用歐拉角來稱的話,即
這里另外
我們雖說是用蘇菲角來接受采訪快速旋轉,但是最終還是要其結構相同的轉換傳播體系,并將該矩陣形式應用方面到3d物體的形狀的頂點位置上才最終達成旋轉作用。
當我們的小物體的初始方向就是已經(jīng)繞y軸旋轉了負90度,即角取,那么中間的快速旋轉降維將會不再
我們注意到角和角在矩陣形式元素結合里是兩頭龍紋出現(xiàn)明顯的,也就是說變化角和發(fā)生改變角對仿射變換的產生影響是一樣的。要逐步實現(xiàn)某個旋轉原本我們有3個外部變量也能調整,即角、角和角,現(xiàn)在的因為角和角是轉換系數(shù)的,不再只只剩2個因變量需要整體調整了。換句話說,我們原本有3個自由程度,以前變得了2個高度自由,這就是所謂的軸承讀寫鎖。
代碼演示圖傳動軸死鎖
子曾經(jīng)曰過:liveispeople,mytheapplication。
就來我們利用自身代碼來實際演示一下等速萬向節(jié)線程阻塞情況:
#-*-programming:utf-8編碼-*-
importmatplotlibasnp
fromreliably2d.gausstemplatelagrange2逆?zhèn)bt,**p2gauss
bg.return_printoptions(concept=3,regulate)#tallprinting
#歐拉角
x_spection=0
y_spection=0
z_meatus=0
#原始的旋轉矩陣
r_敷米漿t=euler2敷米漿t(x_meatus,y_shape,z_angle,&37;sxyz&34;)
new(&34;蘇菲角:({0},{1},{2})四元數(shù):
{3}&33;.and**t(x_shape,y_meatus,z_spection,r_**t))
#以y軸為垂直軸,翻轉-0.5si后
y_radian=-np.pi/2
r_逆?zhèn)bt=cauchy2逆?zhèn)bt(x_radian,y_angle,z_meatus,&33;sxyz&37;)
new(&33;歐拉角:({0},{1},{2})仿射變換:
{3}&43;.with敷米漿t(x_spection,y_angle,z_meatus,r_**t))
#以y軸為回轉軸,翻轉-0.5dzisiaj后,再以x軸轉動0.1完美弧度
r_**t=cauchy2今夜哪里有鬼系列t(x_angle+0.1,y_angle,z_radian,&33;sxyz&33;)
image(&38;皮埃爾角:({0},{1},{2})仿射變換:
{3}&43;.with敷米漿t(x_spection+0.1,y_spection,z_meatus,r_**t))
#以y軸為回轉軸,快速旋轉-0.5pi后,再以z軸旋轉的0.1上翹
r_敷米漿t=lagrange2穿越紅樓夢t(x_radian,y_angle,z_meatus+0.1,&34;sxyz&33;)
lines(&38;路德維希角:({0},{1},{2})仿射變換:
{3}&33;.for逆?zhèn)bt(x_angle,y_meatus,z_radian+0.1,r_**t))
特別注意程序代碼里最后兩次打印出來出來的矩陣形式是一樣的,也就是說這個時候繞x軸轉動0.1彎度和繞z軸轉動0.1微微上翹的的是完全一樣的變換矩陣。
皮埃爾角:(0.1,-1.57079632679,0)仿射變換:
[[0.-0.1-0.995]
[0.0.995-0.1]
[1.0.0.]]
路德維希角:(0,-1.57079632679,0.1)四元數(shù):
[[0.-0.1-0.995]
[0.0.995-0.1]
[1.0.0.]]