在 tkinter 上用铅笔画 canvas
Pencil drawing on a tkinter canvas
我正在尝试在 tkinter canvas 上使用“铅笔式”外观进行绘图。我可以像标记一样在 canvas 上画画,这是一张图片。
我也希望能够像“铅笔”风格一样绘画,这是我的意思的图片(图片来自 paint 3d)
我认为 numpy
、PIL
或 Open CV2
可以,但我不知道如何绘制铅笔素描。我能得到的唯一信息是如何将整个图像转换为铅笔素描。
因为您没有提供最小的可重现示例。代码留给你作为练习:
import tkinter as tk
import math
import random
RADIUS = 10
SEEDS = 10
def random_point(x,y):
a = random_angle = 2*math.pi*random.random()
r = random_radius= RADIUS*math.sqrt(random.random())
random_x = r*math.cos(a)+x
random_y = r*math.sin(a)+y
return random_x,random_y
def paint(event):
x = event.x
y = event.y
canvas = event.widget
for i in range(SEEDS):
random_x,random_y = random_point(x,y)
canvas.create_line(random_x,random_y,random_x+1,random_y+1,fill='black')
root = tk.Tk()
cnvs = tk.Canvas(root)
cnvs.bind('<Motion>',paint)
cnvs.pack()
root.mainloop()
编码愉快!
我正在尝试在 tkinter canvas 上使用“铅笔式”外观进行绘图。我可以像标记一样在 canvas 上画画,这是一张图片。
我也希望能够像“铅笔”风格一样绘画,这是我的意思的图片(图片来自 paint 3d)
我认为 numpy
、PIL
或 Open CV2
可以,但我不知道如何绘制铅笔素描。我能得到的唯一信息是如何将整个图像转换为铅笔素描。
因为您没有提供最小的可重现示例。代码留给你作为练习:
import tkinter as tk
import math
import random
RADIUS = 10
SEEDS = 10
def random_point(x,y):
a = random_angle = 2*math.pi*random.random()
r = random_radius= RADIUS*math.sqrt(random.random())
random_x = r*math.cos(a)+x
random_y = r*math.sin(a)+y
return random_x,random_y
def paint(event):
x = event.x
y = event.y
canvas = event.widget
for i in range(SEEDS):
random_x,random_y = random_point(x,y)
canvas.create_line(random_x,random_y,random_x+1,random_y+1,fill='black')
root = tk.Tk()
cnvs = tk.Canvas(root)
cnvs.bind('<Motion>',paint)
cnvs.pack()
root.mainloop()
编码愉快!