优化MATLAB中quiver函数绘制箭头图或矢量图(2)-MATLAB开发

quiver3_Rendering

之前利用MATLAB绘制更好看的箭头自建函数quiver_Refine 可以输入箭头的位置(a,b,c)与朝向(alpha,beta,gamma),在坐标区中返回三维箭头;现进一步加强其可调节功能以及进一步打包至最终函数quiver3_Rendering。

更新内容

对quiver_Refine函数进行了一些功能拓展,除了标准的控制箭头位置与朝向功能,增加了如下几点新功能:

  1. 可选择箭头的旋转中心;控制箭头在旋转时以整个箭头的中点为旋转点或者以箭头的圆柱的中点为旋转点。
  2. 以HSL方式渲染箭头时色环可顺逆时针旋转且旋转的角度可输入
  3. 增加了 箭头渲染模式可选 功能,可以选择不同的箭头渲染模式甚至可自定义箭头渲染模式。
  4. 全新的 箭头参数输入功能 ;箭头中圆锥的半径/高,圆柱的半径/高可作为参数输入。
  5. 增加了箭头透明度作为参数输入。
  6. quiver_Refine函数打包至quiver3_Rendering函数中,将位置矩阵,方向矩阵,以及色环角度/颜色渲染模式作为输入,与MATLAB内部函数quiver3类似。

新的quiver_Refine函数

function [s1,s2,s3,s4] = quiver_Refine(s,x,V,theta,color,r1,h1,r2,h2,al)
% quiver_Refine(rotation_center,position,direction,color,Cone_r,Cone_h,...
% Cylinder_r,Cylinder_h,alpha)
% s = 1 rotate along the arrow center
% s = 0 rotate along the cylinder center

% color control the colormap
% 1 ~ HSL
% 2 ~ RWB
% 3 ~ Customized

% read data
a = x(1,1);
b = x(1,2);
c = x(1,3);
alpha = V(1,1);
beta  = V(1,2);
gamma = V(1,3);

r1 = 0:0.01:r1;
% Cone
% The cone top position
a1 = a;    
b1 = b;
% Generate cone data
[u,v,w] = cylinder(r1,50);
u = u+a1;
v = v+b1;
w = - w*h1+c+(h1+h2)/2+h1/2-h1/2*s;
% Cone botton
t1 = (0:0.04:2)*pi;
r = max(r1(:));
xc = a1;
yc = b1;
zc = -h1+c+(h1+h2)/2+h1/2-h1/2*s;
% Generate cone botton data
x1 = xc + cos(t1)*r;
y1 = yc + sin(t1)*r;
  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NBb-666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值