我有一个图形,用户可以点击进入。点击的坐标将被存储在两个向量x和y中。然后我通过plot(x_new, y_new)
绘制新创建的点,而且还为该点创建了一个上下文me nu,它有一个标签delete point
.When单击它,我只需删除x
和y
向量的相应值。
现在我需要以某种方式删除绘制点。目前我是这样做的:当删除点时,我只需清除当前轴cla
并重绘所有的点。但不知何故,我觉得这不是最好的方法,因为我还想在用户输入上显示文本和点之间的一些连接线,而且每次都需要重新绘制所有内容时,它可能会变得相当慢……
所以我想知道做这件事最好的方法是什么?简单地存储每个点的返回打印句柄,然后在删除该点时删除这些对象,这是不是很好?连接线和文本也是这样吗?
谢谢!
发布于 2011-12-20 13:14:29
您可以使用XData
和YData
属性直接操作线条的基础数据。
删除索引idx
处的点
XData = get(h_line, 'XData');
YData = get(h_line, 'YData');
XData(idx) = [];
YData(idx) = [];
set(h_line, 'XData', XData, 'YData', YData);
发布于 2011-12-20 14:20:58
还有另一种选择,使用“刷新数据”,但我不喜欢它,因为它慢得多,而且会产生丑陋的代码。所以我投票+1给@Nzbuu解决方案,但如果有人感兴趣,我会加上这一点
https://stackoverflow.com/questions/8575071
复制相似问题