[繪圖] 由已知點畫三角形

看板MATLAB作者 (紳士-M)時間12年前 (2012/03/29 01:11), 編輯推噓4(4016)
留言20則, 4人參與, 最新討論串1/1
我目前有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

03/29 01:42, , 1F
我之前是用line指令
03/29 01:42, 1F

03/29 01:54, , 2F
你頂點的定義為何???
03/29 01:54, 2F

03/29 01:54, , 3F
不用line 用patch 好像可以
03/29 01:54, 3F

03/29 04:08, , 4F
頂點只是相對位置而已,我是想說之後再做一般化
03/29 04:08, 4F

03/29 05:38, , 5F
用patch
03/29 05:38, 5F

03/29 13:49, , 6F
使用patch(X,Y,Z)的確能畫出我要的三角形,可是卻都畫在
03/29 13:49, 6F

03/29 13:49, , 7F
Z=0的平面上,有檢查過Z是有值的,不知道是少了哪個指令
03/29 13:49, 7F

03/29 13:50, , 8F
另外我用plot3畫直線+hold on畫出了我要的效果,但是另
03/29 13:50, 8F

03/29 13:52, , 9F
個問題是,有辦法用內插方式,用3個頂點的RGB值去填滿
03/29 13:52, 9F

03/29 13:53, , 10F
那個三角形包含的面積嗎? 謝謝
03/29 13:53, 10F

03/29 18:17, , 11F
patch(...)若輸入3個argument是patch(X,Y,C)
03/29 18:17, 11F

03/29 18:18, , 12F
你要畫在3維空間要用patch(X,Y,Z,C)
03/29 18:18, 12F

03/29 18:20, , 13F
其中C是頂點的顏色,設定patch的FaceColor參數為interp
03/29 18:20, 13F

03/29 18:20, , 14F
就會自動幫你內插好顏色
03/29 18:20, 14F

03/29 18:43, , 15F
原來可以這樣用喔
03/29 18:43, 15F

03/29 21:17, , 16F
謝謝,我趕快去試試看,有問題在麻煩各位幫忙了
03/29 21:17, 16F

03/30 01:29, , 17F
不好意思,這次想問Matlab能不能做出旋轉時改變景深的效
03/30 01:29, 17F

03/30 01:29, , 18F
果,像這張圖一樣http://imgur.com/0YkAp
下面是目前做
03/30 01:29, 18F

03/30 01:30, , 19F
出來的樣子,上面是有Z buffer的效果,是不是需要自己重
03/30 01:30, 19F

03/30 01:31, , 20F
寫Matlab旋轉的部分才能達到這種效果呢?
03/30 01:31, 20F
文章代碼(AID): #1FSqOg8- (MATLAB)