前言
有粉丝问我图(d)上的色盘图咋画:
明度(v)渐变版
注意,此处是为了还原论文中图片所以x加了。
% 生成网格 tlist=linspace(0,2.*pi,300); rlist=linspace(0,1,100); [theta,r]=meshgrid(tlist,rlist); % 角度及半径转换为坐标 x=cos(theta+pi).*r; y=sin(theta).*r; z=zeros(size(x)); % 构造hsv网格并转换为rgb网格 hsvmesh=cat(3,theta./2./pi,ones(size(r)),r); rgbmesh=hsv2rgb(hsvmesh); % surf绘图 surf(x,y,z,'edgecolor','none','cdata',rgbmesh) axis equal;axis([-1,1,-1,1]); view(0,90);
饱和度(s)渐变版
% 生成网格 tlist=linspace(0,2.*pi,300); rlist=linspace(0,1,100); [theta,r]=meshgrid(tlist,rlist); % 角度及半径转换为坐标 x=cos(theta).*r; y=sin(theta).*r; z=zeros(size(x)); % 构造hsv网格并转换为rgb网格 hsvmesh=cat(3,theta./2./pi,r,ones(size(r))); rgbmesh=hsv2rgb(hsvmesh); % surf绘图 surf(x,y,z,'edgecolor','none','cdata',rgbmesh) axis equal;axis([-1,1,-1,1]); view(0,90);
明度饱和度不变花瓣版
% 构造花瓣形状 t=(0:.1:(2.01/3*pi))+pi; cx=cos(t)+1; cy=sin(t); [ncx,ncy]=rotatedata(cx,cy,pi/6); ncx=[ncx,ncx(end:-1:1)]; ncy=[ncy,-ncy(end:-1:1)]; % 循环绘图 hold on; tt=linspace(0,2*pi,33);tt(end)=[]; for i=tt [tncx,tncy]=rotatedata(ncx,ncy,i); fill(tncx,tncy,hsv2rgb([i/2/pi,1,1]),'facealpha',0.2,... 'linewidth',1.5,'edgecolor',[1,1,1],'edgealpha',0.5) end axis equal;axis([-1.8,1.8,-1.8,1.8]); % 数据旋转角度 function [x,y]=rotatedata(x,y,theta) rotatemat=[cos(theta),-sin(theta);sin(theta),cos(theta)]; xy=rotatemat*[x;y]; x=xy(1,:);y=xy(2,:); end
hsv全空间
% 线性划分 h=linspace(0,2*pi,31);h=h(1:26); s=linspace(0,1,9); v=linspace(0,1,11); % 绘制上面 hold on; [h,s]=meshgrid(h,s); surf(s.*cos(h),s.*sin(h),h-h+1,hsv2rgb(cat(3,h/2/pi,s,h-h+1))); % 绘制侧面 [h,v]=meshgrid(h,v); surf(v.*cos(h),v.*sin(h),v,hsv2rgb(cat(3,h/2/pi,h-h+1,v))); % 绘制两个截面 [s,v]=meshgrid(s,v); surf(s.*v.*cos(h(1)),s.*v.*sin(h(1)),v,hsv2rgb(cat(3,s-s+h(1)/2/pi,s,v))); surf(s.*v.*cos(h(end)),s.*v.*sin(h(end)),v,hsv2rgb(cat(3,s-s+h(end)/2/pi,s,v))); shading flat;view(60,45);axis off; ax=gca;ax.position=[-1/6,-2/6,1+2/6,1+2/6];
到此这篇关于matlab实现四种hsv色轮图绘制的示例代码的文章就介绍到这了,更多相关matlab hsv色轮图内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!
需要了解更多c/c++开发分享Matlab实现四种HSV色轮图绘制的示例代码,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/1120947.html