利用 colorbar 指令,可顯示 MATLAB 如何以不同顏色來代表曲面的高度,例如若先輸入「peaks」,再輸入「colorbar」,就可以得到下列圖形:

Example 1: 04-三維立體繪圖/colorbar01.m

peaks;colorbar;

z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ... - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ... - 1/3*exp(-(x+1).^2 - y.^2)

如上圖所示,colorbar 可以顯示高度與顏色的對照長條圖,而曲面上每一個小方塊的顏色即根據此對照圖而得出。事實上,顏色與高度的對應關係是由一個「顏色對應表」(Colormap,或簡稱「色表」或「色盤」)來控制,此表是一個 m×3 的矩陣,m 的值通常是 64,代表真正用到的顏色個數,而每一列代表一個顏色的 RGB 值,一些常用的值可列表如下:

顏色

Red(紅色)

Green(綠色)

Blue(藍色)

black(黑)

0

0

0

white(白)

1

1

1

red(紅)

1

0

0

green(綠)

0

1

0

blue(藍)

0

0

1

yellow(黃)

1

1

0

magenta(錳紫)

1

0

1

cyan(青藍)

0

1

1

gray(灰)

0.5

0.5

0.5

dark red(暗紅)

0.5

0

0

copper(銅色)

1

0.62

0.4

aquamarine(碧綠)

0.49

1

0.83

MATLAB 預設的顏色對應表可由 colormap 得知,如下:

Example 2: 04-三維立體繪圖/colormap01.m

cm=colormap;size(cm)

ans = 64 3

由上可知 cm 是一個 64×3 的矩陣,因此 MATLAB 在畫圖時,會把 cm 第一列的顏色設定給曲面的最高點,把 cm 的最後一列的顏色設定給曲面的最低點,其餘高度的顏色則依線性內插法來決定。因此,我們只要改變顏色對應表,即可得到不同顏色的曲面。欲改變顏色對應表,也是用 colormap 指令,如下:

Example 3: 04-三維立體繪圖/plotxyz13.m

peaks;colormap(rand(64,3));colorbar;

z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ... - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ... - 1/3*exp(-(x+1).^2 - y.^2)

在上述範例中,我們使用亂數來產生一個 64×3 顏色對應表,因此曲面看起來並不是很賞心悅目。事實上,要產生一個好看的顏色對應表並不是件容易的事,因此 MATLAB 有一些現成的顏色對應表,整理如下:

指令

說明

colormap hsv

HSV 的顏色對應表(預設值)

colormap hot

代表“熱”的顏色對應表

colormap cool

代表“冷”的顏色對應表

colormap summer

代表“夏天”的顏色對應表

colormap gray

代表“灰階”的顏色對應表

colormap copper

代表“銅色”的顏色對應表

colormap autumn

代表“秋天”的顏色對應表

colormap winter

代表“冬天”的顏色對應表

colormap spring

代表“春天”的顏色對應表

colormap bone

代表“X光片”的顏色對應表

colormap pink

代表“粉紅”的顏色對應表

colormap flag

代表“旗幟”的顏色對應表

例如,要使您的曲面使用感覺較冷的顏色,可輸入如下:

Example 4: 04-三維立體繪圖/plotxyz14.m

peaks;colormap cool; colorbar

z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ... - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ... - 1/3*exp(-(x+1).^2 - y.^2)

除了以高度來設定顏色之外,surf 及 mesh 指令都可以接受第 4 個輸入引數來作為設定顏色的依據。例如,若要以曲面的斜率(即「梯度」或「Gradient」)來設定顏色,可進行如下:

Example 5: 04-三維立體繪圖/plotxyz15.m

[X, Y, Z] = peaks;surf(X, Y, Z, gradient(Z));axis tight;colormap hot

在上例中,gradient (Z) 會根據數值微分(Numerical Differentiation)來產生矩陣 Z 的梯度,surf 即利用此梯度來產生曲面的顏色。欲知 gradient 的詳細資訊,可在 MATLAB 指令視窗下輸入 help gradient。

若要以曲面的曲率來設定顏色,可進行如下:

Example 6: 04-三維立體繪圖/plotxyz16.m

[X, Y, Z] = peaks;surf(X, Y, Z, del2(Z));axis tight;colormap hot

在上例中,del2 (Z) 根據數值微分來產生矩陣 Z 的 discrete Laplacian,詳情可參見 help del2 傳回的線上支援。

我們可用 brighten 指令來使顏色對照表變亮或變暗,如下:

Example 7: 04-三維立體繪圖/plotxyz17.m

colormap coppersubplot(3, 1, 1); rgbplot(colormap);brighten(colormap, 0.5)subplot(3, 1, 2); rgbplot(colormap);brighten(colormap, -0.8)subplot(3, 1, 3); rgbplot(colormap);

其中 rgbplot 可畫出 R、G、B 三色的比重對列數的變化。

上述 MATLAB 決定顏色的方法稱為「索引顏色」(Indexed Color)法,因為曲面上每個方塊先對應至顏色對應表的索引(即某一特定列),再由此列決定真正要用的顏色。如果您的顯示器能支援 24 位元全彩,則我們可以直接定義一千六百萬(224)種顏色,而不需要再定義顏色對應表。此種方法稱為「真實顏色」(True Color)法,如下:

Example 8: 04-三維立體繪圖/plotxyz18.m

Z = peaks(50);C(:, :, 1) = rand(50);% C(:,:,1) 代表 R(Red,紅色)的份量C(:, :, 2) = rand(50);% C(:,:,2) 代表 G(Green,綠色)的份量C(:, :, 3) = rand(50);% C(:,:,3) 代表 B(Blue,藍色)的份量surf(Z, C);axis tight

在上圖中,曲面上每一個小方塊的顏色都是由矩陣 C 的 R、G、B 份量來決定,這就是「真實顏色」,而和前述的「索引顏色」有所不同。

在前述的例子中,每一個曲面都可以視為由一塊塊的四角小「瓷磚」所拼成,而且每一塊「瓷磚」表面的顏色是均勻一致的,其顏色值由「瓷磚」所在的曲面高度所決定。若要使「瓷磚」表面的顏色產生連續性的變化,可使用 shading 指令,例如我們可以先輸入「peaks」,再輸入「shading interp」,就可以得到下列顏色漸進變化的圖形:

Example 9: 04-三維立體繪圖/shadingInterp01.m

peaks;colormap jet;colorbar;shading interp;

z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ... - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ... - 1/3*exp(-(x+1).^2 - y.^2)

由上圖可看出,經由 shading interp 的作用,曲面的顏色更加柔順平滑。有關 shading 指令的用法,可列表如下:

指令

說明

shading interp

使用 Bilinear Interpolation 來使「瓷磚」根據四頂點的顏色產生連續的變化

shading flat

「瓷磚」的顏色是均勻一致的。

shading faceted

「瓷磚」的顏色是均勻一致的,而且同時顯示「瓷磚」交接的「邊」。(此為預設值)

使用 colormap 及 shading,可產生意想不到的結果,例如:

Example 10: 04-三維立體繪圖/plotxyz19.m

surfl(peaks);% 曲面圖加上光源 axis tightcolormap(pink);shading interp

上圖的曲面,是否很像一件光滑無瑕的雕塑品呢?!

matlab 面 颜色,matlab曲面颜色相关推荐

  1. MATLAB平面曲线按曲率上色三维曲面颜色栏链接自定义属性(二维曲线第三维用颜色表示,三维曲面第四维用颜色表示)

    平面曲线按曲率上色(曲线第三维用颜色表示) 先上效果图 正弦曲线按曲率上色 自由曲线按误差上色 自由曲面按误差上色 曲线第三维用颜色表示实现方法: x=linspace(-10,10,100); y= ...

  2. matlab让一个点变为指定颜色,MATLAB中的颜色控制

    1.色图颜色调配命令 在MATLAB中,控制及实现颜色调配的主要命令为colormap,它的使用格式如下: 调用格式                                         说 ...

  3. 【MATLAB】进阶绘图 ( colormap 颜色图矩阵分析 | 自定义 colormap 颜色图 | 生成 64 x 3 的 colormap 颜色图矩阵 )

    文章目录 一.colormap 矩阵分析 二.自定义 colormap 颜色图 1.生成 colormap 矩阵 2.代码示例 一.colormap 矩阵分析 imagesc 函数参考文档 : htt ...

  4. MATLAB交换图片红绿颜色通道,matlab的颜色映射colormap

    Colormap 颜色映射 1.首先说明颜色图这个概念: 在matlab中用我们描述一种颜色通常用RGB(红绿蓝)的形式,当然在计算机中RGB取值都在0到1的实数,强度必须在 [0, 1] 范围内,值 ...

  5. matlab:plot线型和颜色

    matlab:plot线型和颜色 在Matlab中,我们可以使用不同的线型和颜色来绘制图形.这些选项可以帮助我们更好地展示数据和结果. 线型选项: 实线:使用默认的plot命令绘制的线条就是实线. 虚 ...

  6. MATLAB | 有关数值矩阵、颜色图及颜色列表的技巧整理

    这是一篇有关数值矩阵.颜色矩阵.颜色列表的技巧整合,会以随笔的形式想到哪写到哪,可能思绪会比较飘逸请大家见谅,本文大体分为以下几个部分: 数值矩阵用颜色显示 从颜色矩阵提取颜色 从颜色矩阵中提取数据 ...

  7. 如何运用matlab给球面染上颜色,matlab画球体颜色如何选择

    请问怎样用matlab画一个透明的球体,球体圆心为(x,y,z)坐标的原点 [x,y,z]=sphere(30);%30是画出来的球面的经纬分面数...30的话就是30个经度, 30个纬度x=4+7* ...

  8. matlab 职坐标,机器人之【机器视觉与图像处理】基于MATLAB的圆检测、颜色识别、数字识别...

    本文主要向大家介绍了机器人之[机器视觉与图像处理]基于MATLAB的圆检测.颜色识别.数字识别,通过具体的内容向大家展现,希望对大家学习机器人有所帮助. 对产品中心的检测:设置好路径之后,包含关系是在 ...

  9. matlab如何随机选颜色,Matlab 画图修饰-随机线条和随机颜色

    转载自:http://www.zhaoyanpeng.cn/archives/237 当需要对同一曲线不同参数下进行模拟时需要不同的颜色来加以区分: 上例根据RGB颜色,来实现不同颜色曲线的组合,考虑 ...

  10. matlab中surf怎么改变颜色_美术绘画中怎么让颜色更好看?规避上色大坑技巧

    相信好多画画的小伙伴儿都会遇上这样的问题-- 1.别人的颜色看着特别好看,但是我画一样的东西颜色就非常奇怪,怎么看怎么不舒服,却不知道为什么自己的颜色会不好看! 2.老师们和学画画的朋友平时所说的颜色 ...

最新文章

  1. Tokyo Cabinet 安装
  2. sdcard不可执行.
  3. mysql 索引生命周期_MYSQL 索引(一)--- 简介
  4. android项目中单实例数据库类
  5. pythonfor循环语句例题_python循环语句的使用练习题
  6. Qt文档阅读笔记-QWindow的进一步认识
  7. linux从表中提取信息,如何用Linux命令提取表格文本中的某列
  8. java通讯录工程_JAVA通讯录管理小项目
  9. 2018 Multi-University Training Contest 7 - GuGuFishtion
  10. Navicat连接Oracle数据库
  11. 城市信息学其五-空间经济学、城市信息学、和交通便利
  12. 34个漂亮的应用程序后台管理界面分享
  13. 脱壳手把手入门(详细)——aspack压缩壳
  14. Deepin - 磁盘清理工具Bleachbit
  15. 开博第一篇,为什么要开通博客,开通博客的申请理由
  16. 热烈欢迎Ubuntu志愿者!
  17. 扬子苦荞啤酒 一杯苦荞啤酒,精彩你的世界
  18. Socks5代理:网络安全的重要工具
  19. vivado保存ila波形数据用MATLAB分析(补码与十进制转换)
  20. 字符串替换c语言you替代we,字符串替换_无以伦比的暖阳的技术博客_51CTO博客

热门文章

  1. 《写给女人》--[美]桃乐丝·卡耐基
  2. element-ui 表格使用多选 如何回显打勾
  3. ABAP select options 和 parameters在同一行
  4. Ubuntu 18.04 LTS系统主题美化
  5. Apache Sling App CMS <1.1.4 存在反射型XSS漏洞(CVE-2022-46769)
  6. 联想服务器重装系统只有光标,联想bios重装系统图文教程
  7. 案例分享 | 数智化升级:红蜻蜓的转型之路(下)
  8. laravel 浏览器谷歌network返回报错html
  9. 计算机del键作用,计算机里的英文字母“DEL”键是干什么用的
  10. redis的客户端medis