创建一幅图像,在图像中单击鼠标左键时绘制鼠标指针所在的点和坐标,单击鼠标右键时使用前面单击鼠标左键所取的点绘制多边形。
时间: 2024-10-11 11:15:00 浏览: 36
PyQt5图片鼠标点击标点 QLabel实现在图片上标注点并获得坐标
5星 · 资源好评率100%
创建这样的图像通常需要使用图形库,比如Python中的matplotlib和tkinter,或者是JavaScript的HTML5 Canvas API。以下是使用Python的一个简要步骤:
```python
import tkinter as tk
from tkinter import messagebox
import matplotlib.pyplot as plt
import numpy as np
class ImageCanvas(tk.Canvas):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.xys = []
self.bind("<Button-1>", self.on_left_click)
self.bind("<Button-3>", self.on_right_click)
def on_left_click(self, event):
self.create_oval(event.x - 5, event.y - 5, event.x + 5, event.y + 5, fill='red')
self.xys.append((event.x, event.y))
def on_right_click(self, event):
if not self.xys: # 如果还没有点击过左键,不绘制多边形
return
self.create_polygon([xy[0] for xy in self.xys], [xy[1] for xy in self.xys], outline='blue', width=2)
self.xys.clear()
root = tk.Tk()
canvas = ImageCanvas(root, width=400, height=400)
canvas.pack()
root.mainloop()
```
在这个例子中,我们创建了一个Tkinter窗口,并在其上放置一个Canvas。当用户单击鼠标左键时,会绘制一个红色圆圈表示点击位置;右键单击时,如果之前有左键点击记录,将连接所有点形成蓝色多边形。
阅读全文