MATLAB自建函数quiver3_Rendering
quiver3_Rendering
之前利用MATLAB绘制更好看的箭头自建函数quiver_Refine 可以输入箭头的位置(a,b,c)与朝向(alpha,beta,gamma),在坐标区中返回三维箭头;现进一步加强其可调节功能以及进一步打包至最终函数quiver3_Rendering。
更新内容
对quiver_Refine函数进行了一些功能拓展,除了标准的控制箭头位置与朝向功能,增加了如下几点新功能:
- 可选择箭头的旋转中心;控制箭头在旋转时以整个箭头的中点为旋转点或者以箭头的圆柱的中点为旋转点。
- 以HSL方式渲染箭头时色环可顺逆时针旋转且旋转的角度可输入。
- 增加了 箭头渲染模式可选 功能,可以选择不同的箭头渲染模式甚至可自定义箭头渲染模式。
- 全新的 箭头参数输入功能 ;箭头中圆锥的半径/高,圆柱的半径/高可作为参数输入。
- 增加了箭头透明度作为参数输入。
- 将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;