主要学习了画空间圆柱体和空间长方形的绘制方法。
有两个surface property:'FaceColor'和'EdgeColor’;
先讲'FaceColor’,它指定了surface画出曲面的颜色,可以是[r,g,b]的一个向量,分别表示了红绿蓝的颜色配比;
也可以是'interp’,画出来是由z的值决定的渐变色,可以使用colormapeditor来调节颜色(在代码中写上colormapeditor即可唤出调色板);
然后是'EdgeColor’,它会在曲面的表面画出网格,指定颜色的方法同上。
但是有一个疑问没有解决:就是如何只显示各个棱的网格线,而不是整个面的网格线??这个留待后面继续摸索吧。
surface(x,y,z)函数画出来的图像如果想要平移,可以直接在带入参数时修改。比如,沿z轴正方向平移10,就是surface(x,y,z+10);
最后有一个实现视角自动旋转的小功能:
view(az,el)中,az可以调节物体旋转的角度,el调节摄像机的俯仰角度for i=1:120
view(i*1, 30);
pause(0.01);
end
代码如下:function test()
%%
clear;
clc;
clf;
z_delta = 6;
%% draw head
A = imread('head.jpg');
[x,y,z]=sphere(30);
h0=surface(x,y,z + z_delta,'EdgeColor','none');
rotate(h0, [0,0,1], 90);
set(h0,'CData',A,'FaceColor','texturemap');%texturemap纹理贴图
%% draw body
% FaceColor (orange)
face_color = 'interp'; %[1, 0.6, 0];
edge_color = 'b';
colormapeditor;% up board[x1,y1] = meshgrid(-1:0.1:1, -1:0.1:1);z1 =