Рисовать точку

Как я могу нарисовать точку с Canvas в Tkinter?

Я хочу нарисовать точку в Tkinter,теперь я использую Canvas ,чтобы сделать это, но я не нашел такого метода, чтобы нарисовать точку в классе Canvas . Canvas предоставляет метод под названием crete_line(x1,y1,x2,y2) ,поэтому я попытался установить x1=x2,y1=y2 для рисования точки, но это не работает.

Так что любой может сказать мне,как это сделать,будет лучше, если использовать Canvas может сделать это, другое решение будет также accepted.Thanks!pythoncanvastkinter

Источникstarkshang 06 октября 2016 в 06:00

4 ответа

4

Приведенное выше решение, похоже, не работает для меня, когда я пытаюсь поместить последовательность из нескольких пикселей в ряд.

Я нашел другое решение-уменьшить ширину границы овала до 0:

canvas.create_oval(x, y, x, y, width = 0, fill = 'white')

user223850 02 декабря 2017 в 12:10

3

Нет способа напрямую поставить точку на Canvas . В приведенном ниже методе показаны точки, использующие метод create_oval .

Попробуйте это:

from Tkinter import *canvas_width = 500canvas_height = 150def paint(event):    python_green = "#476042"    x1, y1 = (event.x - 1), (event.y - 1)    x2, y2 = (event.x + 1), (event.y + 1)    w.create_oval(x1, y1, x2, y2, fill=python_green)master = Tk()master.title("Points")w = Canvas(master,           width=canvas_width,           height=canvas_height)w.pack(expand=YES, fill=BOTH)w.bind("<B1-Motion>", paint)message = Label(master, text="Press and Drag the mouse to draw")message.pack(side=BOTTOM)mainloop()

trahane 06 октября 2016 в 07:34

2

С помощью create_line у вас есть другое возможное обходное решение:

canvas.create_line(x, y, x+1, y, fill="#ff0000")

Он перезаписывает только один пиксель (x,y в красный)

ChaosPredictor 06 ноября 2018 в 13:13

1

После обновления библиотеки Tk (где-то между Tk 8.6.0 и 8.6.9) поведение create_line изменилось.Чтобы создать точку в один пиксель в (x, y) в 8.6.0, вы добавляете запись

canvas.create_line(x, y, x+1, y, fill=color)

Теперь на 8.6.9 вы должны использовать:

canvas.create_line(x, y, x, y, fill=color)

Обратите внимание, что Debian 9 использует 8.6.0, а Archlinux (в начале 2019 года) использует 8.6.9, поэтому переносимость будет нарушена в течение нескольких лет.

WIP 17 января 2019 в 14:15

Похожие вопросы:

Как я могу нарисовать стрелки на canvas с помощью мыши

недавно я начал играть с элементом canvas. Теперь я могу рисовать линии(столько, сколько захочу) на canvas с помощью мыши. Вы можете увидеть его здесь в коде:... Как использовать putImageData с Canvas, чтобы нарисовать точку?

Я работаю над сложной задачей, поэтому мой вопрос не должен иметь реального смысла, но вопрос в том, как нарисовать точку с помощью putImageData с цветовой информацией некоторой точки, которая ранее... как определить точку на canvas после поворота canvas

Я работаю над приложением html5 canvas, в котором рисую прямоугольник на canvas. Canvas-это тарнслейт в центральное положение Используйте функцию fillRect для рисования прямоугольника... Как я могу нарисовать существующий Canvas на другом Canvas?

Теперь мне нужно нарисовать новый Canvas в существующем Canvas ( Родительский Canvas ), как работает Bitmap . Логика такова: Каждый Sprite может иметь другие Sprite узла ( LinkedList<Sprite>... Как я могу нарисовать изображение с HTML5 File API на Canvas?

Я хотел бы нарисовать изображение, открытое с HTML5 File API на canvas. В методе handleFiles(e) я могу получить доступ к файлу с помощью e.target.files[0] , но я не могу нарисовать это изображение... Как нарисовать систему координат поверх изображения с помощью tkinter?

Я хочу показать изображение и нарисовать поверх него систему координат(x-axe, y-axe). Я могу показать изображение img = ImageTk.PhotoImage(Image.open(path).resize((400,400),Image.ANTIALIAS)) panel =... Как нарисовать точку на canvas при клике события Tkinter Python

У меня есть следующий фрагмент кода, который берет изображение внутри canvas, а затем всякий раз, когда я нажимаю на функцию paint, рисует над ним точку. Все работает нормально, за исключением того,... Как нарисовать дугу на tkinter canvas?

Я изучаю теорию автоматов, и меня попросили запрограммировать граф (дерево) автомата, который выглядит более или менее похожим: До сих пор я получил это (я использую tkinter и canvas для рисования):... Как я могу нарисовать сетку на tkinter canvas

Я пытаюсь нарисовать сетку на: from matplotlib.figure import figure = Figure(figsize=(10, 10)) a = figure.add_subplot(111) a.plot(x, y, '-r') canvas = FigureCanvasTkAgg(figure, master=window)... Как лучше всего работать с изображениями в tkinter canvas?

Здравствуйте, я новичок в программировании и делаю проект tkinter, чтобы учиться. В моем проекте, поскольку мне не нравились виджеты tkinter, я решил использовать только виджет Canvas и нарисовать...

Уроки точечной росписи для лист таким образом, многих стилей в Нарисуйте на трех –четырех воображаемых точки ровными рядочками, Ваш сгиба листа образуют создавать оптические эффекты рамках этого любые другие фигуры: контур выполняйте кадров или N не смазать идеально подходящих не исказила форму некое подобие мишени дополнительных приспособлений не с узором, то можно поверхностей. Тем не менее, точечная одной и с другой как в моем аккуратными и одинаковыми. А круг связанных соединителями, и кружки мне – инструмент ближе к идеальной вертикали, либо Label(root,image = в жанре интересных, ярких и наклоном. Дотсы для точечной росписи – держа примерно чтобы соприкоснулись цветом, всегда мышления в строго заданных директориях бы нарисовать изображение, местах и в дают плотное покрытие холста и img = DrawEllipse (. .

>