matlab图形着色.doc
《matlab图形着色.doc》由会员分享,可在线阅读,更多相关《matlab图形着色.doc(8页珍藏版)》请在冰点文库上搜索。
matlab图形着色
1.matlab中的颜色查找表函数:
(1)autumn:
从红色向橘黄色、黄色平稳过渡;
(2)bone:
为含有较高的蓝色组分的gray颜色查找表;
(3)colorcube:
包含RGB颜色空间中尽可能多的规则间隔的颜色,它试图提供更多的灰色、纯红、纯绿和纯蓝;
(4)cool:
由青色和洋红阴影组成的颜色。
在青色和洋红间平滑过渡;
(5)copper:
在黑色和亮铜色间平滑过渡;
(6)flag:
由红、白、蓝、黑组成。
每次索引值增加时,该颜色查找表会完全改变颜色;
(7)gray:
线性灰阶颜色查找表;
(8)hot:
在黑、红、橘红、黄、白间平滑过渡;
(9)hsv:
颜色从红色开始,然后为黄、绿、青、蓝、洋红,最后是红色。
特别适合显示周期性函数;
(10)jet:
在蓝、青、黄、橘红、红色间过渡;
(11)lines:
生成颜色由坐标系对象的colororder属性和灰色阴影确定;
(12)pink:
包含品红色的柔和阴影。
可以对灰度照片进行棕褐色化;
(13)prism:
重复红、橘红、黄、绿、蓝、紫色;
(14)spring:
由洋红和黄色阴影组成;
(15)summer:
由绿色和黄色阴影组成;
(16)white:
白色;
(17)winter:
由蓝色和绿色阴影组成。
2.用colormapeditor可以画出抢眼的图。
[x,y]=meshgrid(-2:
0.1:
2);
z=x.*exp(-x.^2-y.^2);
surf(x,y,z,gradient(z));
shadinginterp;
colormapeditor;
图1
图2
图3
3.利用函数del2计算矩阵的拉普拉斯算子,实现表面曲率向颜色映射
具有相似曲率的区域用相同的颜色进行描绘。
p=peaks(40);
c=del2(p);
surf(p,c);
colormaphsv;
%对比
figure
surf(p);
colormaphsv;
图4
4.真彩色表面
创建一个随机着色表面图
z=peaks(25);
c(:
:
1)=rand(25);
c(:
:
2)=rand(25);
c(:
:
3)=rand(25);
surf(z,c);
figure;
surf(z,c,'FaceColor','interp','FaceLighting','phong');
camlightright;
图5
图6
5.纹理映射
纹理映射是通过变换颜色数据将二维图像映射到三维表面上。
clear;
clc;
clf;
loadearth;
[x,y,z]=sphere(30);
h=surface(x,y,z);
set(h,'CData',X,'FaceColor','texturemap');%texturemap纹理贴图
colormap(map);
axisequal;
set(gca,'CameraViewAngleMode','manual');
view(3);
图7
6.多边形模型的着色
控制面片着色的属性:
CData:
用x,y,z数据指定每个小面或每个顶点的颜色;
CDataMapping:
指定是否将颜色数据进行比例化或直接用作颜色映射的索引;
FaceVertexCData:
用小面和顶点数据指定每个小面或顶点的颜色;
EdgeColor:
指定边的显示,包括隐藏、单色、顶点颜色确定的刻面颜色或顶点颜色确定的插值颜色;
FaceColor:
指定小面的显示,包括隐藏、单色、顶点颜色确定的刻面颜色或顶点颜色确定的插值颜色;
MarkerEdgeColor:
指定闭合图形的边缘色;
MarkerFaceColor:
指定闭合图形的填充色。
%画白色正方体
vert=[111;121;221;211;112;122;222;212];
fac=[1234;2673;4378;1584;1265;5678];
patch('Faces',fac,'Vertices',vert,'FaceColor','w');
view(3);
axissquare;
axisequal;
%刻面着色
patch('Faces',fac,'Vertices',vert,'FaceVertexCData',hsv(6),'FaceColor','flat');
%插值着色
patch('Faces',fac,'Vertices',vert,'FaceVertexCData',hsv(6),'FaceColor','interp');
图7
7.片面边着色
v=[000;100;110;010];
f=[1234];
fvc=[110;100;010;101];
patch('Vertices',v,'Faces',f,'FaceVertexCData',fvc,'FaceColor','flat','EdgeColor','flat','Marker','o','MarkerFaceColor','flat');
set(gcf,'color','w');
view(-16,76);
axisoff;
text(0,0,0.5,'1');
text(1,0,0.5,'2');
text(1,1,0.5,'3');
text(0,1,0.5,'4');
图8
修改:
f=[4321];
图9
f的次序改变不仅仅改变边的颜色,还改变了面的颜色,面的颜色是指定的第一个顶点的颜色。