re-us 发表于 2008-2-17 18:46

图形着色的一点经验

图形着色的一点经验,前几天发了个帖子,问如何改变两个曲面的颜色。现在基本搞定了。我想这个代码不一定对大家有用,但是我是如何找到答案的肯定对大家有用的。参考的一些网页,都是google得到的。
1.get (http://news.scuec.edu.cn/jsj/zid ... 122/article_369.htm)
在GUI编程中,我们可能有时候想改变某些object的属性,或者想让它安装自己的想法实现,但是我们又不记得这些object的属性,更别提怎么设置他们的值了。这时,可以用 get(handles)得到此对象的所有的属性及其当前值。用set(handles)可以得到对象所有可以设置的属性及其可能的取值。找到我们需要的属性名字和可能的取值之后,就意义用 get(handles,‘propertyname’)取得此属性的值,用set(handles,‘propertyname’,values)设置此对象此属性的值。
2. 有了第一步,用get(h1)可以得到:
AlphaData: 1
AlphaDataMapping: 'scaled'
CData:
CDataMapping: 'scaled'
EdgeAlpha: 1
EdgeColor:
EraseMode: 'normal'
FaceAlpha: 1

FaceColor: 'flat'

LineStyle: '-'

LineWidth: 0.5000

Marker: 'none'

. ................

3. 看了第二步,猜测可能与color相关的属性,可能会解决问题。看了这个帖子以后(http://forum.vibunion.com/thread-56985-1-1.html)知道edgecolor是修改线条的颜色的。那这个应该是facecolor了。果然facecolor的属性也可以用三个rgb值来表示。

下面是一些常用rgb值的定义(引自http://www.matlab8.com/html/95/n-95.html)


   黑   0   0   0      洋红    1   0   1
   白   1   1   1      青蓝    0   1   1
   红   1   0   0      天蓝0.670   1
   绿   0   1   0      橘黄    10.50
   蓝   0   0   1      深红   0.50   0
   黄   1   1   0       灰    0.5 0.5 0.5      

此外: 在 苏金明 王永利编的《matlab图形图像》的第8章专门讲了图像着色的问题。
希望对大家有所帮助

代码如下(其中的mat文件可以从http://forum.vibunion.com/thread-58811-1-1.html下载到)

clc
clear
load d:/jml.mat jml
load d:/jme.mat jme

h1=surf(jml);hold on
h2=surf(jme);

set(h1,'facecolor',)
set(h2,'facecolor',)
hold off

geoer 发表于 2008-2-17 21:49

发现点小错误,黑色误写为

re-us 发表于 2008-2-19 16:44

恩,谢谢,是错了。是
页: [1]
查看完整版本: 图形着色的一点经验