如何使箭袋()箭头大小固定的吗?
568(30天)
显示旧的评论
答案(3)
broken_arrow
2021年9月24日
编辑:broken_arrow
2021年9月27日
我同意
箭袋
和
quiver3
应该有一个建在选择常数箭头大小(
@MathWorks支金宝app持团队
)。除以长度不正常工作对我来说(不产生恒定的头部大小)。这是我写了一个函数来解决这个问题
quiver3
:
函数out_arrowhandles =…
quiver3addarrowheads (in_quivhandle in_arrowheadlength in_arrowtipangle)
%添加箭头与常数大小quiver3阴谋。
%箭头有相同的倾向相对于z平面向量。
%
%输入参数:
% in_quivhandle:处理颤抖的阴谋是附加的
% in_arrowheadlength:期望的箭头长度向量长度单位
% in_arrowtipangle:期望的箭头提示在度(°)
%
%输出参数:
% out_arrowhandles:箭头线处理
X =重塑(in_quivhandle.XData 1 []);
Y =重塑(in_quivhandle.YData 1 []);
Z =重塑(in_quivhandle.ZData 1 []);
U =重塑(in_quivhandle.UData 1 []);
V =重塑(in_quivhandle.VData 1 []);
W =重塑(in_quivhandle.WData 1 []);
aux_Xend = X + U;
aux_Yend = Y + V;
aux_Zend = Z + W;
aux_orthvectors =交叉([U、V、W], [U、V、W + 1]);
aux_orthvectors = aux_orthvectors。/ vecnorm (aux_orthvectors);
如果~任何(aux_orthvectors, 1)
aux_orthvectors (:, ~ (aux_orthvectors, 1)) = (1, 0, 0);
结束
aux_arrowtips1 = in_arrowheadlength * (- U、V、W。/ vecnorm ([U、V、W])…
罐内(in_arrowtipangle) * aux_orthvectors);
aux_arrowtips2 = aux_arrowtips1 +…
2 * in_arrowheadlength *罐内(in_arrowtipangle) * aux_orthvectors;
aux_arrowhandle1 = quiver3 (in_quivhandle.Parent aux_Xend、aux_Yend aux_Zend,…
aux_arrowtips1 (1:), aux_arrowtips1 (2:), aux_arrowtips1 (3:)…
“线宽”in_quivhandle.LineWidth,“颜色”in_quivhandle.Color,…
“ShowArrowHead”,“关闭”,自动定量的,“关闭”);
aux_arrowhandle2 = quiver3 (in_quivhandle.Parent aux_Xend、aux_Yend aux_Zend,…
aux_arrowtips2 (1:), aux_arrowtips2 (2:), aux_arrowtips2 (3:)…
“线宽”in_quivhandle.LineWidth,“颜色”in_quivhandle.Color,…
“ShowArrowHead”,“关闭”,自动定量的,“关闭”);
out_arrowhandles = [aux_arrowhandle1 aux_arrowhandle2];
结束
后直接运行功能
quiver3
(与
自动定量的
和
“ShowArrowHead”
设置为
“关闭”
)或结合成一个
customquiver3
函数如果你想要一个一个解决方案。适应函数为2 d
箭袋
,附加你的2 d输入向量
Z = W = 0
(
交叉
只适用于3 d向量)
并丢弃z坐标(
0
绘图前)。如果你想要一个箭头的不同倾向,修改相应的向量积。
还要注意,箭头正面看起来如果“倾斜”
daspect
的
x
和
y
轴不同。