Этот пост является частью Календарь Anvil Advent Отказ Мы строим одно веб-приложение в день в течение 24 дней, ничего не используя, кроме Python! На 7-й день я построил веб-приложение, используя POLVAS API, чтобы украсить беспутную виртуальную рождественское печенье без запекания. И мне не нужно было использовать какие-либо HTML, JavaScript или CSS.
Вы можете проверить приложение здесь и украсить свой собственный печенье.
Это была моя первая попытка использования холста. Вот как я создал элементы cookie и веб-приложение, используя Наковальня и python:
Делать много кругов
Мои простые украшения Cookie построены из кругов и треугольников разных размеров и цветов. Строив больше элементов, приложение может быть легко расширено, чтобы иметь больше
Поскольку мое приложение широко использует круги, я сначала определил функцию, чтобы нарисовать круг. Функция принимает желаемые координаты X и Y круга и его радиусом в качестве аргументов:
def draw_circle(self, x, y, radius): c = self.canvas_1 c.begin_path() c.arc(x, y, radius, 0, 2 * math.pi) c.close_path()
Эта функция называется, когда форма открывается для создания базы cookie. Он также используется для создания глазури, брызгает и снеговика.
Добавление случайных брызг
Координаты X и Y для брызгает выбираются случайным образом каждый раз, когда нажат sprinkles_button:
import random ... def sprinkles_button_click(self, **event_args): """This method is called when the button is clicked""" color = self.color_dropdown.selected_value if color is None: color = "#e62325" #defaults to red self.canvas_1.fill_style = color x_list = list(range(400, 600)) x_list = random.sample(x_list, 15) y_list = list(range(100, 300)) y_list = random.sample(y_list, 15) for x,y in zip(x_list, y_list): self.draw_circle(x, y, 6) self.canvas_1.fill()
Рождественская елка треугольников
Для рождественской елки я только что сделал три перекрывающихся зеленых треугольника, которые становятся постепенно меньше, когда они двигаются вверх по оси Y. Следующий код рисует один треугольник:
c = self.canvas_1 c.fill_style = '#00884b' c.begin_path() c.move_to(410,280) c.line_to(590,280) c.line_to(500,170) c.close_path() c.fill()
Слияние Вы можете проверить все наши приложения Adventar Calendar здесь Отказ
Оригинал: “https://dev.to/anvil/decorating-a-virtual-cookie-with-python-and-canvas-oj2”