三维基本图形的绘制
边学习边总结,虽然三维基本绘图命令都知道的比较多(surf/surfc,mesh/meshc/meshz,plot3,slice等)。但是实际操作起来,还是会有些难度,因为我绘图也是个菜鸟。对于用方程的表达式的,似乎容易些,可以根据表达式产生数据,然后使用绘制图指令就可以了。对于一些平时见得很多,但是表达式有不容易想起来的就需要平时的积累了(1)平面图的绘制
曾有版友问到Z=5这个平面如何绘制。如果对x,y没有限制,那么最简单的方法:surf(5*ones(10));
(2)球体的绘制:sphere
(3)椭球体绘制:ellipsoid命令。 = ellipsoid(0,1,1,3,5,8,20);surfc(x,y,z);
(4)柱体绘制:命令cylinder,可以绘制常见的旋转体。下面的小程序绘制的酷似一个喇叭 t=0:pi/10:2*pi;
=cylinder(t.^2);%这里的参数t.^2可以理解为母线方程。
surf(X,Y,Z)(5)长方体的绘制:没有曲面方程,matlab里也没有现成的函数。资料上只是说可以用meshgird产生绘图数据,然后使用mesh或者surf。不过我一直没用弄明白,数据怎么产生。。。这是别人用slice绘制的,先充个数。等以后有好的方法再补充 =meshgrid(0:.05:1,0:.05:2,0:.05:1.5);
fun=(x+y+z)/3;%
slice(x,y,z,fun,0:.05:1,0:.05:2,0:.05:1.5);
colorbar, axis equal
[ 本帖最后由 eight 于 2007-10-21 23:13 编辑 ] 总结的不错,期待你下面的工作! 花花做的不错,收了 原帖由 94117239 于 2007-10-20 16:05 发表 http://www.chinavib.com/forum/images/common/back.gif
花花做的不错,收了
谢谢院长鼓励,我一定会努力的:loveliness: 贴子中 Z=5平面的绘制应该是:surf(ones(10)*5) 吧! 我编了个小函数cftplot(x,a,b,c)绘制长方体;x为1顶点坐标,a,b,c分别为长宽高;使用格式:cftplot(,3,2,1)
function cftplot(x,a,b,c)
y1=suand(x,a,b);y2=suand(,a,b);
y=;
facejz=;
patch('Vertices',y,'Faces',facejz,'FaceVertexCData',hsv(8),'FaceColor','interp');
view(3);axis equal;
function z=suand(x,a,b)
z=;
[ 本帖最后由 donkeyxu 于 2007-11-8 17:31 编辑 ] 啊谢谢非常好啊 自己顶起来,6楼的绘制长方体函数也很不错 感谢楼上的分享,小弟收了。:handshake
页:
[1]