使用delaunay和trimesh(也可以用trisurf)函數,但似乎對z軸多值有點問題,如果直接畫圖,只能畫出半個橢球。
現在的做法是把上下兩個半球分開畫,勉強能實現,但做法上不太滿意,暫時沒時間詳細研究,貼出來拋磚引玉,供參考吧。
[x,y,z]?=?ellipsoid(0,0,0,2,3,4,20);ind?=?z>=0;
tri?=?delaunay(x(ind),y(ind));
trimesh(tri,x(ind),y(ind),z(ind))
hold?on
ind?=?z<=0;
tri?=?delaunay(x(ind),y(ind));
trimesh(tri,x(ind),y(ind),z(ind))