matplotlib 判断鼠标是否点击在当前线上

在开发中有一个需求:对生成的一条线进行拖拽。

我将这个方法实现在线所在的类里,这个过程中需要判断鼠标是否点击在当前线上,从而实现拖拽。

实现代码如下:

python 复制代码
 # 点击事件
def on_press(self,event):
    if event.inaxes != self.ax:
        return
    # 只有鼠标左键才能进行拖动
    if event.button is MouseButton.LEFT:
        # 判断点击的位置是否在线上
        if self.line.contains(event):
            self.drag_x_datum_line = True

但是经过测试,无论在没在线上点击鼠标,得到的结果都是True

后来经过查资料得知,正确的写法应为:

python 复制代码
 # 点击事件
def on_press(self,event):
    if event.inaxes != self.ax:
        return
    # 只有鼠标左键才能进行拖动
    if event.button is MouseButton.LEFT:
        # 判断点击的位置是否在标线上
        if self.line.contains(event)[0]:
            self.drag_x_datum_line = True

这是因为Line2D.contains(event)方法返回的是一个包含两个元素的元组,第一个元素是一个布尔值,第二个元素是一个字典,包含点的更多信息。

相关推荐
梦白.28 分钟前
Python的容器类型
运维·python
@HNUSTer2 小时前
基于 Visual Studio Code 配置 Python 开发环境详细教程
ide·vscode·python·csdn开发云
tuotali20262 小时前
天然气压缩机技术2026,高可靠性长周期运行与智能运维融合路径
运维·python
Ama_tor3 小时前
Flask零基础进阶(中)
后端·python·flask
love530love3 小时前
Windows 11 源码编译 vLLM 0.16 完全指南(RTX 3090 / CUDA 12.8 / PyTorch 2.7.1)
人工智能·pytorch·windows·python·深度学习·vllm·vs 2022
进击的小头3 小时前
第3篇:最优控制理论数学基础——矩阵与向量的导数
python·线性代数·机器学习·矩阵
浩瀚之水_csdn3 小时前
Flask 深度解析:从微内核到企业级架构
python·架构·flask
Calm5503 小时前
Python 编程入门实训 - 知识点总结
python
全栈开发圈3 小时前
新书速览|Seaborn科技绘图:基于Matplotlib的Python数据可视化
python·科技·matplotlib
java1234_小锋3 小时前
Python常见面试题:Python是如何进行内存管理的?
java·jvm·python