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)方法返回的是一个包含两个元素的元组,第一个元素是一个布尔值,第二个元素是一个字典,包含点的更多信息。

相关推荐
勇往直前plus16 小时前
Redis&Python 梳理
数据库·redis·python
开源量化GO16 小时前
多品种组合单品种剧烈波动:组合风控先平谁
python
战族狼魂16 小时前
AI 全栈开发实战训练路线(企业级)
人工智能·python·chatgpt·大模型
AC赳赳老秦16 小时前
用 OpenClaw 制定技术学习计划:根据目标岗位自动生成学习路线、推荐学习资源
开发语言·c++·人工智能·python·mysql·php·openclaw
长和信泰光伏储能16 小时前
探索绿色能源未来:光伏储能技术解析
python
李白的天不白16 小时前
config/WebMvcConfig.java
开发语言·python
Elaine33616 小时前
基于Django框架的静态个人名片网站设计
后端·python·django·mvt
henrylin999917 小时前
开源量化软件功能介绍
python·开源
C+-C资深大佬17 小时前
Python 新手学习指南
开发语言·python
嫂子的姐夫17 小时前
050-wx小程序合肥住房
爬虫·python·小程序·逆向