Houdini?克服恐懼之?| Matrix到底是個(gè)什么東西力惯?

Rotational Matrix | 旋轉(zhuǎn)矩陣

3*3 Rotate Matrix包含的信息

不管是旋轉(zhuǎn)矩陣還是移動(dòng)矩陣碗誉,首先Matrix本質(zhì)上只是一個(gè)矩陣數(shù)組,不管是3x3或者4x4父晶,他們本身只是一個(gè)矩陣字符串哮缺,如何使用這這個(gè)字符串才決定了這些矩陣的性質(zhì)。

比如我們想借助旋轉(zhuǎn)矩陣來(lái)旋轉(zhuǎn)當(dāng)前點(diǎn)

當(dāng)前位置和旋轉(zhuǎn)矩陣的積為旋轉(zhuǎn)后的結(jié)果
當(dāng)前位置和唯一矩陣的積即為新位置
ident matrix 創(chuàng)建一個(gè)空白矩陣

注:空白矩陣不是0甲喝,而是不會(huì)改變?cè)瓕傩猿⑽捎迷趧?chuàng)建矩陣上。

<matrix> ident()
Returns the identity matrix for the given matrix type.

// for example
matrix3 m3 = ident();

此時(shí)獲得的m3矩陣為
| 1, 0, 0 |
| 0, 1, 0 |
| 0, 0, 1 |

Matrix3舉個(gè)栗子

假設(shè)要用matrix對(duì)box進(jìn)行旋轉(zhuǎn)埠胖,

//定義一個(gè)3*3矩陣
matrix3 rot = ident();
//將旋轉(zhuǎn)參數(shù)分別給到代表 x,y,z的三個(gè)行列式
rotate(rot, radians(chf("rotx_amount")), {1,0,0});
rotate(rot, radians(chf("roty_amount")), {0,1,0});
rotate(rot, radians(chf("rotz_amount")), {0,0,1});

@P *= rot;

其中radians()可以將值轉(zhuǎn)化為弧度糠溜。
矩陣賦值可簡(jiǎn)寫(xiě)為

rotate(rot, radians(chf("rot_amount")), {1,1,1});

此時(shí)獲得了一個(gè)box的轉(zhuǎn)動(dòng),假如我們想讓box進(jìn)行陣列轉(zhuǎn)動(dòng)直撤,有兩個(gè)思路
1诵冒,對(duì)單體進(jìn)行轉(zhuǎn)動(dòng),然后copy到陣列里獲得群體轉(zhuǎn)動(dòng)谊惭。這樣很直接,但是缺點(diǎn)也很明顯侮东,所有點(diǎn)陣?yán)锏腷ox旋轉(zhuǎn)都是一致的圈盔。

2,對(duì)copy的點(diǎn)陣上的每個(gè)點(diǎn)進(jìn)行矩陣修改悄雅,這樣每個(gè)點(diǎn)可以擁有獨(dú)立的或者隨機(jī)的旋轉(zhuǎn)方式驱敲,cool!

但是,由于之前的matrix3只包含了rotation信息宽闲,通過(guò)查看primintrisics發(fā)現(xiàn)所有點(diǎn)的pivot都在幾何體中心众眨,如果想要針對(duì)每個(gè)點(diǎn)旋轉(zhuǎn),需要更改pivot屬性容诬,或者...直接用Matrix4娩梨!

Matrix4的栗子

Matrix4的基本形式是
| 1, 0, 0, 0 |
| 0, 1, 0, 0 |
| 0, 0, 1, 0 |
| 0, 0, 0, 1 |
最后一行是代表位移信息,而最后一列是作為計(jì)算補(bǔ)位用览徒。
前三行分別代表了x,y,z的方向和大小狈定,ie. 第一行{1,0,0,0},如果改為{2,0,0,0}习蓬,則矩陣在x方向上放大兩個(gè)單位纽什。
另外,此時(shí)x,y,z三個(gè)方向沒(méi)有必要正交躲叼。
例如用如下矩陣和豬頭運(yùn)算芦缰,
| 2, 0, 0, 0 |
| 1, 1, 0, 0 |
| 0, 0, 1, 0 |
| 0, 0, 0, 1 |


豬頭在x方向放大兩倍,同時(shí)y方向變?yōu)閧1枫慷,1让蕾,0}方向浪规,所以產(chǎn)生傾斜

定義matrix4的方法有很多,比較常用的是

matrix m = ch4("matrix_M");
//或者
matrix m = ident();

當(dāng)然可以使用最原始的

matrix m = set(   1,0,0,0,
                          0,1,0,0,
                          0,0,1,0
                          0,0,0,1
)

p@orient也可以做為點(diǎn)的matrix調(diào)用方式涕俗,參照https://www.sidefx.com/forum/topic/60235/

假設(shè)此時(shí)我們有一個(gè)球體多邊形罗丰,需要把box復(fù)制到每個(gè)點(diǎn)上。
通過(guò)copy to point完成再姑。


默認(rèn)設(shè)置下萌抵,box的up順著點(diǎn)的法向

在wrangle中修改Y軸轉(zhuǎn)向,借助ptnum作為隨機(jī)seed元镀,
同時(shí)借助ptnum作為pscale的seed來(lái)隨機(jī)化大小绍填。

p@orient = quaternion(chf("rotate_Y")*fit01(rand(@ptnum),1.0,5.0), {0,1,0,0});

@pscale = fit01(rand(@ptnum),0.2,1.5);

這樣獲得了大小不同且轉(zhuǎn)速不同的復(fù)制幾何體。


借助點(diǎn)的隨機(jī)性來(lái)創(chuàng)造隨機(jī)幾何體
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末栖疑,一起剝皮案震驚了整個(gè)濱河市讨永,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌遇革,老刑警劉巖卿闹,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異萝快,居然都是意外死亡锻霎,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)揪漩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)旋恼,“玉大人,你說(shuō)我怎么就攤上這事奄容”” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵昂勒,是天一觀的道長(zhǎng)蜀细。 經(jīng)常有香客問(wèn)我,道長(zhǎng)戈盈,這世上最難降的妖魔是什么审葬? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮奕谭,結(jié)果婚禮上涣觉,老公的妹妹穿的比我還像新娘。我一直安慰自己血柳,他們只是感情好官册,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著难捌,像睡著了一般膝宁。 火紅的嫁衣襯著肌膚如雪鸦难。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天员淫,我揣著相機(jī)與錄音合蔽,去河邊找鬼。 笑死介返,一個(gè)胖子當(dāng)著我的面吹牛拴事,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播圣蝎,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼刃宵,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了徘公?” 一聲冷哼從身側(cè)響起牲证,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎关面,沒(méi)想到半個(gè)月后坦袍,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡等太,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年键闺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片澈驼。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖筛武,靈堂內(nèi)的尸體忽然破棺而出缝其,到底是詐尸還是另有隱情,我是刑警寧澤徘六,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布内边,位于F島的核電站,受9級(jí)特大地震影響待锈,放射性物質(zhì)發(fā)生泄漏漠其。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一竿音、第九天 我趴在偏房一處隱蔽的房頂上張望和屎。 院中可真熱鬧,春花似錦春瞬、人聲如沸柴信。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)随常。三九已至潜沦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绪氛,已是汗流浹背唆鸡。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留枣察,地道東北人争占。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像询件,于是被迫代替她去往敵國(guó)和親燃乍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354