|
matlab圖形著色
1.matlab中的顏色查找表函數(shù):
(1)autumn:從紅色向橘黃色、黃色平穩(wěn)過渡;
(2)bone:為含有較高的藍色組分的gray顏色查找表;
(3)colorcube:包含RGB顏色空間中盡可能多的規(guī)則間隔的顏色,它試圖提供更多的灰色、純紅、純綠和純藍;
(4)cool:由青色和洋紅陰影組成的顏色。在青色和洋紅間平滑過渡;
(5)copper:在黑色和亮銅色間平滑過渡;
(6)flag:由紅、白、藍、黑組成。每次索引值增加時,該顏色查找表會完全改變顏色;
(7)gray:線性灰階顏色查找表;
(8)hot:在黑、紅、橘紅、黃、白間平滑過渡;
(9)hsv:顏色從紅色開始,然后為黃、綠、青、藍、洋紅,最后是紅色。特別適合顯示周期性函數(shù);
(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));
shading interp;
colormapeditor;
![[學習筆記]matlab圖形著色 [學習筆記]matlab圖形著色](http://image95.360doc.com/DownloadImg/2016/03/2423/68378998_1)
圖1
![[學習筆記]matlab圖形著色 [學習筆記]matlab圖形著色](http://image95.360doc.com/DownloadImg/2016/03/2423/68378998_2)
圖2
![[學習筆記]matlab圖形著色 [學習筆記]matlab圖形著色](http://image95.360doc.com/DownloadImg/2016/03/2423/68378998_3)
圖3
3.利用函數(shù)del2計算矩陣的拉普拉斯算子,實現(xiàn)表面曲率向顏色映射
具有相似曲率的區(qū)域用相同的顏色進行描繪。
p=peaks(40);
c=del2(p);
surf(p,c);
colormap hsv;
%對比
figure
surf(p);
colormap hsv;
![[學習筆記]matlab圖形著色 [學習筆記]matlab圖形著色](http://image95.360doc.com/DownloadImg/2016/03/2423/68378998_4)
圖4
4.真彩色表面
創(chuàng)建一個隨機著色表面圖
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');
camlight right;
![[學習筆記]matlab圖形著色 [學習筆記]matlab圖形著色](http://image95.360doc.com/DownloadImg/2016/03/2423/68378998_5)
圖5
![[學習筆記]matlab圖形著色 [學習筆記]matlab圖形著色](http://image95.360doc.com/DownloadImg/2016/03/2423/68378998_6)
圖6
5.紋理映射
紋理映射是通過變換顏色數(shù)據(jù)將二維圖像映射到三維表面上。
clear;
clc;
clf;
load earth;
[x,y,z]=sphere(30);
h=surface(x,y,z);
set(h,'CData',X,'FaceColor','texturemap');%texturemap紋理貼圖
colormap(map);
axis equal;
set(gca,'CameraViewAngleMode','manual');
view(3);
![[學習筆記]matlab圖形著色 [學習筆記]matlab圖形著色](http://image95.360doc.com/DownloadImg/2016/03/2423/68378998_7)
圖7
6.多邊形模型的著色
控制面片著色的屬性:
CData:用x,y,z數(shù)據(jù)指定每個小面或每個頂點的顏色;
CDataMapping:指定是否將顏色數(shù)據(jù)進行比例化或直接用作顏色映射的索引;
FaceVertexCData:用小面和頂點數(shù)據(jù)指定每個小面或頂點的顏色;
EdgeColor:指定邊的顯示,包括隱藏、單色、頂點顏色確定的刻面顏色或頂點顏色確定的插值顏色;
FaceColor:指定小面的顯示,包括隱藏、單色、頂點顏色確定的刻面顏色或頂點顏色確定的插值顏色;
MarkerEdgeColor:指定閉合圖形的邊緣色;
MarkerFaceColor:指定閉合圖形的填充色。
%畫白色正方體
vert=[1 1 1;1 2 1;2 2 1;2 1 1;1 1 2;1 2 2;2 2 2;2 1
2];
fac=[1 2 3 4;2 6 7 3;4 3 7 8;1 5 8 4;1 2 6 5;5 6 7 8];
patch('Faces',fac,'Vertices',vert,'FaceColor','w');
view(3);
axis square;
axis equal;
%刻面著色
patch('Faces',fac,'Vertices',vert,'FaceVertexCData',hsv(6),'FaceColor','flat');
%插值著色
patch('Faces',fac,'Vertices',vert,'FaceVertexCData',hsv(6),'FaceColor','interp');![[學習筆記]matlab圖形著色 [學習筆記]matlab圖形著色](http://image95.360doc.com/DownloadImg/2016/03/2423/68378998_8)
圖7
7.片面邊著色
v=[0 0 0;1 0 0;1 1 0;0 1 0];
f=[1 2 3 4];
fvc=[1 1 0;1 0 0;0 1 0;1 0 1];
patch('Vertices',v,'Faces',f,'FaceVertexCData',fvc,'FaceColor','flat','EdgeColor','flat','Marker','o','MarkerFaceColor','flat');
set(gcf,'color','w');
view(-16,76);
axis off;
text(0,0,0.5,'1');
text(1,0,0.5,'2');
text(1,1,0.5,'3');
text(0,1,0.5,'4');
![[學習筆記]matlab圖形著色 [學習筆記]matlab圖形著色](http://image95.360doc.com/DownloadImg/2016/03/2423/68378998_9)
圖8
修改:f=[4 3 2 1];
![[學習筆記]matlab圖形著色 [學習筆記]matlab圖形著色](http://image95.360doc.com/DownloadImg/2016/03/2423/68378998_10)
圖9
f的次序改變不僅僅改變邊的顏色,還改變了面的顏色,面的顏色是指定的第一個頂點的顏色。
|