我正在努力改变LineJoin
对于 MATLAB 等高线图中的某些线。当我修改EdgePrims
,只有“部分线路”受到影响:
num_incs = 3;
x = linspace(-1,1,num_incs);
[Xa,Ya] = meshgrid(x,x);
Z = abs(Xa) + abs(Ya);
[C,hContour] = contour(Xa,Ya,Z,20,'LineWidth',4);
drawnow;
set(hContour.EdgePrims, 'LineStyle', 'dotted')
set(hContour.EdgePrims, 'LineJoin', 'miter')
drawnow;
produces the following:
也就是说,我正在设置LineStyle
and LineJoin
仅在外边缘。我怎样才能访问中间线的线属性?
轮廓对象有一个新的隐藏属性(matlab.graphics.chart.primitive.Contour
): EdgeLoopPrims
。这个包含形成闭环的所有边的句柄。EdgePrims
现在仅包含不形成闭环的行的句柄。
set(hContour.EdgePrims, 'LineStyle', 'dotted')
set(hContour.EdgeLoopPrims, 'LineStyle', 'dotted')
与未记录的属性一样,这种情况必然会在某个时刻发生变化。使用此功能将限制您的代码使用特定版本的 MATLAB。我用 R2021a 对此进行了测试。
要探索隐藏属性,只需将图形句柄转换为结构体即可:struct(hContour)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)