gpt4 book ai didi

matlab - MATLAB 中不可能有可点击的透明线?

转载 作者:行者123 更新时间:2023-12-04 15:27:03 25 4
gpt4 key购买 nike

所以我有 3 行(技术补丁)启用了一些透明度。这些行是由补丁行 FEX 提交生成的。 FEX 条目非常有效,它通过在数据末尾添加 NaN 使补丁看起来像线,这样它就不会在我的线的端点之间创建一个大的黑色补丁。

我的台词是这样的

__        __
\ /
_ \ / _
\ \__/ /
\______/

补丁从左端点延伸到右端点,沿直线穿过顶部,然后沿着底部的线延伸。实际的补丁是隐藏的(未绘制),所以用户看到的只是线条

问题是如果我想点击顶线的底部驼峰,它就像我点击底线一样,因为它是那个补丁的一部分。

我想到了几个变通办法,希望你们能指出我的变通办法中可能遗漏的缺陷或想法。

解决方法 #1

理想情况下,我会在透明线上创建一条实际的线(线系列对象)。我会在补丁上关闭 hittest,我会让实际的线不可见,但打开 hittest。我 99% 确定存在的问题是,如果可见性关闭,则无法单击该对象。如果有人可以解决该问题(已记录或以其他方式),那就太好了。

解决方法#2

关闭 patchline hittest 属性。制作模拟线对象。遵循补丁线坐标。并且线宽非常非常小,以便理想地使线几乎不可见,并且 HitTest 点击指向这些线。以前有人尝试过这样的事情吗? (我在上类,现在不能试)

解决方法 #3

请注意,我真的不想这样做当然可以关闭补丁/线 objs 的 hittest,并使用轴 buttondown 找出它最接近的补丁 obj(只是线部分)。

再一次,任何有关我可能的解决方法、一般情况等的见解都将不胜感激。

谢谢,肖恩

最佳答案

这个问题可以用两个线厚的补丁来说明,其中一个不平行于轴:

patch([2 8 8],[5 10 10],'w','EdgeColor','b','EdgeAlpha',0.4,'LineWidth',3)
patch([2 8 8],[4 4 4],'w','EdgeColor','r','EdgeAlpha',0.4,'LineWidth',3)
xlim([0 10])
ylim([3 11])

您只能选择与其中一个轴平行的那些线。

  • 解决方法 #1:不可能。
  • 解决方法 #2:非常明显,那么为什么需要透明线?
  • 解决方法 #3:唯一的方法...

解决方法:向 TMW 提交技术请求以提高补丁的可点击性。

关于matlab - MATLAB 中不可能有可点击的透明线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17173448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com