[繪圖] plot3如何把曲面畫出

看板MATLAB作者 (赴美留學的日子...)時間10年前 (2015/01/08 12:35), 10年前編輯推噓3(3011)
留言14則, 5人參與, 最新討論串1/3 (看更多)
是這樣的, x是一個(n*1)的向量。 y是一個(n*1)的向量。 z是一個(n*1)的向量。 plot3(x,y,z,'.') 會在3D中畫出n個點。 如果這n個點剛好是一個曲面,如何把它畫成如: http://ppt.cc/MeC~ 一條線一條線的曲面(semidefinite cone) 或是讓圖看起來像曲面,而不是一堆點 THX -- ╭──╮ q ˙ . ╭════╮ ◤◥◤◥ 此路不通 ││ ˙在 一 起 ╰═ ╤ ═╯ ◣ ◢ ﹕. ˙ ‧ ‧ ███ ψsleeeve ███ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 74.94.77.238 ※ 文章網址: http://www.ptt.cc/bbs/MATLAB/M.1420691737.A.292.html ※ 編輯: sleeeve (74.94.77.238), 01/08/2015 12:37:37

01/08 14:44, , 1F
surf ? or surf相關 mesh, surfc ?
01/08 14:44, 1F
應該說,如果這些點剛好構成一個實心的cone...但我想畫這個cone的surface. 要怎麼弄呢? surf(x,y,z)好像不行 ※ 編輯: sleeeve (74.94.77.238), 01/08/2015 14:57:28

01/08 17:16, , 2F
知道 z = f(x,y) 的話可以用樓上的方法
01/08 17:16, 2F

01/08 17:17, , 3F
不知道的話...重新內插?
01/08 17:17, 3F

01/08 20:59, , 4F
1F就是正解了阿 怎麼可能不行 你代碼貼上來
01/08 20:59, 4F

01/08 21:04, , 5F
把xy meshgrid 然後把z分別對應放入矩陣 沒有的改成nan
01/08 21:04, 5F

01/08 21:05, , 6F
mesh就出來了
01/08 21:05, 6F

01/08 21:19, , 7F
提供一個偷懶的方法 將z=某個值的xyz全部畫一條線
01/08 21:19, 7F

01/08 21:20, , 8F
但要看誤差可以忍受多少
01/08 21:20, 8F

01/09 13:49, , 9F
這個case看起來不可能靠surf, mesh之類的來畫,
01/09 13:49, 9F

01/09 13:49, , 10F
假設你的點夠密,你去matlab help看一下 isosurface 這
01/09 13:49, 10F

01/09 13:49, , 11F
個function底下的範例成式碼,或許會有用.
01/09 13:49, 11F

01/09 13:51, , 12F
你的case看起來要從meshing做起; distance transform可
01/09 13:51, 12F

01/09 13:51, , 13F
以幫你定義cone的內/外部.
01/09 13:51, 13F
num = 0; %% loop for x = 0 : .1 : 1 for y = -1 : .1 : 1 for z = 0 : .1 : 1 num = num + 1; A = [x y;y z]; // PSD矩陣 a = eig(A); // 求特徵值 if (a(1) >= 0) && (a(2) >= 0) // 如果兩個特徵值接不小於0,則儲存 vecx(num) = x; vecy(num) = y; vecz(num) = z; else // 否則不儲存其座標值 vecx(num) = NaN; vecy(num) = NaN; vecz(num) = NaN; end end end end %% picture figure(1) plot3(vecx,vecy,vecz,'.') ※ 編輯: sleeeve (74.94.77.238), 01/10/2015 15:07:48

01/10 15:08, , 14F
畫出來是實心的@@
01/10 15:08, 14F
條件是矩陣要positive semi-definite,所以用特徵值去判定。 我適用範圍內一個點一個點帶。 ※ 編輯: sleeeve (74.94.77.238), 01/10/2015 15:09:45 ※ 編輯: sleeeve (74.94.77.238), 01/10/2015 15:26:33
文章代碼(AID): #1KhWaPAI (MATLAB)
文章代碼(AID): #1KhWaPAI (MATLAB)