求各位指教matlab,我想用isosurface画一个球面,可结果确实这样,为什么呀?
1个回答
展开全部
原因在于,你没有指定等值面的值。
在未指定的条件下,会调用isovalue函数根据数据的分布情况自动确定一个值,而该值不等于0,也就是说,你画的并不是R=1的球面(从实际情况看,R>1),但坐标范围在-1~1之间,所以画出来的就是球面的一部分了。
把绘图的那句改成
isosurface(x.^2+y.^2+z.^2-1,0)
即可。
顺便提醒一下,坐标没必要取的那么密集,那样会耗费大量的内存,速度也很慢,但显示效果并没有太大提高。另外,建议带上参数x、y、z,以便显示正确的坐标范围。
[x,y,z]=meshgrid(-1:0.1:1);
isosurface(x,y,z,x.^2+y.^2+z.^2-1,0)
axis equal
度娘又抽风了,上传图片等了好长时间也不成功,就不传了吧,反正一运行就知道了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询