看板 MATLAB 關於我們 聯絡資訊
我目前有3個3*n矩陣,一個存頂點的X、Y、Z座標,一個存RGB值,一個存三角形 的三個頂點編號,下面是matlab裡看到的樣子 Matrix A __ __ | 0.153 2.202 .... | X座標 | 0.325 1.147 .... | Y座標 | 0.223 1.511 .... | Z座標 __ __ Matrix B __ __ | 128 221 ... | R | 214 115 ... | G | 255 245 ... | B __ __ Matrix C __ __ | 0 1 2 ... | 頂點1 | 1 3 3 ... | 頂點2 | 2 2 0 ... | 頂點3 __ __ 矩陣內容大概是這樣,我希望可以用一個迴圈去一行一行讀出Matrix C中的3個頂點,再 用那些編號去讀Matrix A中的座標,然後一次畫一個三角形在圖上,一直循環到所有 Matrix C中的三角形都被畫在圖上為止。 然後,由於input中可能不包含Matrix B的資訊,所以若Matrix B是空矩陣,需要可以 透過Z值來表示深淺顏色,不知道哪個指令能達到這個要求呢? 目前試過Trimesh 但是似乎不能一次只給他一個點,我是這樣打 trimesh(tri,A(1,1),A(2,1),A(3,1)) 但是圖上什麼都沒有,也試過plot3,但是不管是用 plot3(A(1,:),A(2,:),A(3,:)) 或是 plot3(A(1,1),A(2,1),A(3,1))都畫不出東西 唯一有東西出來的是trimesh(tri,A(1,:),A(2,:),A(3,:)),但是這個畫法沒辦法照我要 的順序畫出三角形,因為最近剛學matlab,有非常多的東西不懂,希望各位能幫忙解答一 下,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.253.149
vincent59:我之前是用line指令 03/29 01:42
vincent59:你頂點的定義為何??? 03/29 01:54
vincent59:不用line 用patch 好像可以 03/29 01:54
colinslik:頂點只是相對位置而已,我是想說之後再做一般化 03/29 04:08
sunev:用patch 03/29 05:38
colinslik:使用patch(X,Y,Z)的確能畫出我要的三角形,可是卻都畫在 03/29 13:49
colinslik:Z=0的平面上,有檢查過Z是有值的,不知道是少了哪個指令 03/29 13:49
colinslik:另外我用plot3畫直線+hold on畫出了我要的效果,但是另 03/29 13:50
colinslik:個問題是,有辦法用內插方式,用3個頂點的RGB值去填滿 03/29 13:52
colinslik:那個三角形包含的面積嗎? 謝謝 03/29 13:53
mp19990920:patch(...)若輸入3個argument是patch(X,Y,C) 03/29 18:17
mp19990920:你要畫在3維空間要用patch(X,Y,Z,C) 03/29 18:18
mp19990920:其中C是頂點的顏色,設定patch的FaceColor參數為interp 03/29 18:20
mp19990920:就會自動幫你內插好顏色 03/29 18:20
vincent59:原來可以這樣用喔 03/29 18:43
colinslik:謝謝,我趕快去試試看,有問題在麻煩各位幫忙了 03/29 21:17
colinslik:不好意思,這次想問Matlab能不能做出旋轉時改變景深的效 03/30 01:29
colinslik:果,像這張圖一樣http://imgur.com/0YkAp 下面是目前做 03/30 01:29
colinslik:出來的樣子,上面是有Z buffer的效果,是不是需要自己重 03/30 01:30
colinslik:寫Matlab旋轉的部分才能達到這種效果呢? 03/30 01:31