Модуль canvas
canvas.circle(x, y, radius)¶
Рисует круг в точке x, y с радиусом radius;
canvas.clear()¶
Очищает холст целиком;
canvas.clear_rect(x, y, width, height)¶
Очищает прямоугольную область с левым верхним углом в точке x, y, шириной width и высотой height;
canvas.draw()¶
Функция перерисовки холста. Важно: вызывается только после того, как вызваны все нужные функции рисования;
canvas.fill_circle(x, y, radius)¶
Рисует закрашенный круг в точке x, y с радиусом radius;
canvas.fill_rect(x, y, width, height)¶
Рисует закрашенный прямоугольник с левым верхним углом в точке x, y, шириной width и высотой height;
canvas.fill_style(‘color’)¶
Функция для изменения цвета закраски. color — устанавливаемый цвет. Цвета можно выбрать из списка на этой странице Википедии;
canvas.fill_text(text, x, y, font=’Monospace’, size=24, align=’left’)¶
Рисует закрашенный текст text в точке x, y шрифтом font (Monospace по умолчнию), размером size (по умолчанию 24) пикселей и выравниванием align (по умолчанию — «left»). Возможные варианты выравнивания — «left», «right» и «center»
canvas.line_to(x, y)¶
Рисует линию из точки, в которой находится указатель в точку, с координатами x, y;
canvas.line_width(width)¶
Устанавливает ширину линии width в пикселях;
canvas.listen()¶
Запускает цикл ожидания событий от холста. Если такого ожидания не будет, обработчики событий не сработают.
canvas.move_to(x, y)¶
Устанавливает указатель в точку, с координатами x, y;
canvas.radius_line(x, y, angle, length)¶
Рисует радиальную линию из точки x, y под углом angle (в градусах) и длиной length.
canvas.reset()¶
Очищает холст целиком, сбрасывает цвет на черный и устанавливает ширину линий в 1;
canvas.set_color(‘color’)¶
Функция для изменения цвета кисти. color — устанавливаемый цвет. Цвета можно выбрать из списка на этой странице Википедии;
canvas.set_onclick(callback)¶
Устанавливает обработчик клика мышкой по холсту. Функция-обработчик callback должна принимать два параметра — x и y. Например
import canvas
def my_click(x, y):
print("Только что был клик!", x, y)
canvas.set_onclick(my_click)
canvas.listen()
canvas.stroke_rect(x, y, width, height)¶
Рисует прямоугольник с левым верхним углом в точке x, y, шириной width и высотой height;
canvas.stroke_style(‘color’)¶
Делает то же, что и canvas.set_color
canvas.stroke_text(text, x, y, font=’Monospace’, size=24, align=’left’)¶
Рисует контур текста text в точке x, y шрифтом font (Monospace по умолчнию), размером size (по умолчанию 24) пикселей и выравниванием align (по умолчанию — «left»). Возможные варианты выравнивания — «left», «right» и «center»
canvas.onclick(callback)¶
Тоже самое, что canvas.set_onclick.
canvas.onkey(callback, key_code)¶
Устанавливает обработчик нажатия клавиши на клавиатуре. Если параметр key_code не передан, функция-обработчик должна принимать один аргумент. В него будет передан код нажатой клавиши.
Если параметр key_code передан, то функция обработчик не должна принимать ни одного аргумента.
import canvas
# Функция-обработчик без аргумента. Будет вызвана
# при нажатии клавиши "стрелка влево"
def left():
print('ArrowLeft (left)')
canvas.onkey(left, 'ArrowLeft')
# Функция-обработчик с одним аргументом. Будет вызвана
# при нажатии любой клавиши на клавиатуре
# в key_code будет записан код нажатой клавиши
def keydown(key_code):
print(key_code)
canvas.onkey(keydown)
canvas.listen()
canvas.onkeyup(callback, key_code)¶
Устанавливает обработчик отпускания клавиши на клавиатуре. Если параметр key_code не передан, функция-обработчик должна принимать один аргумент. В него будет передан код отпушенной клавиши.
Если параметр key_code передан, то функция обработчик не должна принимать ни одного аргумента.
import canvas
# Функция-обработчик без аргумента. Будет вызвана
# при отпускании клавиши "стрелка влево"
def left():
print('ArrowLeft (left)')
canvas.onkeyup(left, 'ArrowLeft')
# Функция-обработчик с одним аргументом. Будет вызвана
# при отпускании любой клавиши на клавиатуре
# в key_code будет записан код отпущенной клавиши
def keydown(key_code):
print(key_code)
canvas.onkeyup(keydown)
canvas.listen()
Коды клавиш такие же, как и в canvas.onkey
canvas.onrightclick(callback)¶
То же самое, что canvas.set_onclick, но для правой кнопки мыши
Коды клавиш¶
Код клавиши — это строка, чувствительная к регистру.
Код | Клавиша |
---|---|
Space | Пробел |
ArrowUp | ↑ |
ArrowDown | ↓ |
ArrowLeft | ← |
ArrowRight | → |
Рисуем круг, овал, прямоугольник, дугу и многугольник в Tkinter
В этой части изучения Tkinter мы немного порисуем. Рисование в Tkinter реализовано при помощи виджета Canvas. Это функционал высокого уровня, который позволяет создавать графику в Tkinter. Рисование можно использовать для создания графиков статистики, самодельных пользовательских виджетов и даже небольших игр.
Содержание курса
- Создание окна по центру и кнопка выхода в Tkinter
- Разметка виджетов в Tkinter — pack, grid и place
- Виджеты Checkbutton, Label, Scale и Listbox в Tkinter
- Меню, подменю и панель инструментов в Tkinter
- Диалоговые окна в Tkinter — Выбор цвета — Выбор файла
- Рисуем линии, прямоугольники, круг и текст в Tkinter
- Пишем игру змейка на Tkinter
Содержание статьи
- Рисуем линии в Tkinter — create_line()
- Создаем цветные прямоугольники в Tkinter
- Рисуем различные формы в Tkinter
- Вставляем изображение в Canvas
- Меняем шрифт и рисуем текст в Tkinter
Рисуем линии в Tkinter — create_line()
Линия – это примитивный геометрический элемент. На виджете Canvas создать линию можно при помощи метода create_line().
Python
from tkinter import Tk, Canvas, Frame, BOTH class Example(Frame): def __init__(self): super().__init__() self.initUI() def initUI(self): self.master.title(«Рисуем линии») self.pack(fill=BOTH, expand=1) canvas = Canvas(self) canvas.create_line(15, 25, 200, 25) canvas.create_line(300, 35, 300, 200, dash=(4, 2)) canvas.create_line(55, 85, 155, 85, 105, 180, 55, 85) canvas.pack(fill=BOTH, expand=1) def main(): root = Tk() ex = Example() root.geometry(«400×250+300+300») root.mainloop() if __name__ == ‘__main__’: main()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | from tkinter import Tk, Canvas, Frame, BOTH
class Example(Frame):
def __init__(self): super(). self.initUI()
def initUI(self): self.master.title(«Рисуем линии») self.pack(fill=BOTH, expand=1)
canvas = Canvas(self) canvas.create_line(15, 25, 200, 25) canvas.create_line(300, 35, 300, 200, dash=(4, 2)) canvas.create_line(55, 85, 155, 85, 105, 180, 55, 85)
canvas.pack(fill=BOTH, expand=1)
def main(): root = Tk() ex = Example() root.geometry(«400×250+300+300») root.mainloop()
if __name__ == ‘__main__’: main() |
В примере нашего кода, мы рисуем простые линии в Tkinter.
Python
canvas.create_line(15, 25, 200, 25)
canvas.create_line(15, 25, 200, 25) |
Параметрами метода create_line() являются координаты x
и y
, которые обозначают стартовые и конечные точки линии.
Python
canvas.create_line(300, 35, 300, 200, dash=(4, 2))
canvas.create_line(300, 35, 300, 200, dash=(4, 2)) |
Мы нарисовали вертикальную линию. Опция dash позволяет создать пунктированную линию. Множества (4, 3) означает:
- 4 — длинна тире или точки в пикселях;
- 2 — пустой промежуток между тире либо точками.
Если указать dash=(1, 1)
то у нас будет линия из точек.
Python
canvas.create_line(55, 85, 155, 85, 105, 180, 55, 85)
canvas.create_line(55, 85, 155, 85, 105, 180, 55, 85) |
Создаем цветные прямоугольники в Tkinter
Цвет является объектом, который отображает комбинацию Красного, Зеленого и Синего цветов (RGB).
colours.py
Python
from tkinter import Tk, Canvas, Frame, BOTH class Example(Frame): def __init__(self): super().__init__() self.initUI() def initUI(self): self.master.title(«Цвета») self.pack(fill=BOTH, expand=1) canvas = Canvas(self) canvas.create_rectangle( 30, 10, 120, 80, outline=»#fb0″, fill=»#fb0″ ) canvas.create_rectangle( 150, 10, 240, 80, outline=»#f50″, fill=»#f50″ ) canvas.create_rectangle( 270, 10, 370, 80, outline=»#05f», fill=»#05f» ) canvas.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
class Example(Frame):
def __init__(self): super().__init__() self.initUI()
def initUI(self): self.master.title(«Цвета») self.pack(fill=BOTH, expand=1)
canvas = Canvas(self) canvas. create_rectangle( 30, 10, 120, 80, outline=»#fb0″, fill=»#fb0″ )
canvas.create_rectangle( 150, 10, 240, 80, outline=»#f50″, fill=»#f50″ )
canvas.create_rectangle( 270, 10, 370, 80, outline=»#05f», fill=»#05f» )
canvas.pack(fill=BOTH, expand=1)
def main(): root = Tk() ex = Example() root.geometry(«400×100+300+300») root.mainloop()
if __name__ == ‘__main__’: main() |
В данном примере мы нарисовали прямоугольники и закрасили их разными цветами. Мы ранее работали с выбором цвета в Tkinter используя диалоговое окно цветовой палитры.
Python
canvas = Canvas(self)
canvas = Canvas(self) |
Мы создали виджет canvas.
Python
canvas.create_rectangle( 30, 10, 120, 80, outline=»#fb0″, fill=»#fb0″ )
canvas.create_rectangle( 30, 10, 120, 80, outline=»#fb0″, fill=»#fb0″ ) |
Есть вопросы по Python?
На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!
Python Форум Помощи
Telegram Чат & Канал
Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!
Паблик VK
Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!
Подписаться
С помощью create_rectangle() мы создаем прямоугольник на холсте. Первыми четырьмя параметрами являются x
и y
координаты двух ограничительных точек: верхней левой и нижней правой.
Рисуем различные формы в Tkinter
На холсте мы можем нарисовать самые разнообразные формы. На представленном ниже примере показаны некоторые из них.
shapes.py
Python
from tkinter import Tk, Canvas, Frame, BOTH class Example(Frame): def __init__(self): super().__init__() self.initUI() def initUI(self): self.master.title(«Рисуем формы») self.pack(fill=BOTH, expand=1) canvas = Canvas(self) # Овальная форма. canvas.create_oval( 10, 10, 80, 80, outline=»#f11″, fill=»#1f1″, width=2 ) # Овальная форма. canvas. create_oval( 110, 10, 210, 80, outline=»#f11″, fill=»#1f1″, width=2 ) # Рисуем прямоугольник. canvas.create_rectangle( 230, 10, 290, 60, outline=»#f11″, fill=»#1f1″, width=2 ) # Рисуем дугу. canvas.create_arc( 30, 200, 90, 100, start=0, extent=210, outline=»#f11″, fill=»#1f1″, width=2 ) points = [ 150, 100, 200, 120, 240, 180, 210, 200, 150, 150, 100, 200 ] # Рисуем многоугольник. canvas.create_polygon(points, outline=’#f11′, fill=’#1f1′, width=2) canvas.pack(fill=BOTH, expand=1) def main(): root = Tk() ex = Example() root.geometry(«330×220+300+300») root.mainloop() if __name__ == ‘__main__’: main()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | from tkinter import Tk, Canvas, Frame, BOTH
class Example(Frame):
def __init__(self): super(). __init__() self.initUI()
def initUI(self): self.master.title(«Рисуем формы») self.pack(fill=BOTH, expand=1)
canvas = Canvas(self)
# Овальная форма. canvas.create_oval( 10, 10, 80, 80, outline=»#f11″, fill=»#1f1″, width=2 )
# Овальная форма. canvas.create_oval( 110, 10, 210, 80, outline=»#f11″, fill=»#1f1″, width=2 )
# Рисуем прямоугольник. canvas.create_rectangle( 230, 10, 290, 60, outline=»#f11″, fill=»#1f1″, width=2 )
# Рисуем дугу. canvas.create_arc( 30, 200, 90, 100, start=0, extent=210, outline=»#f11″, fill=»#1f1″, width=2 )
points = [ 150, 100, 200, 120, 240, 180, 210, 200, 150, 150, 100, 200 ]
# Рисуем многоугольник. canvas.create_polygon(points, outline=’#f11′, fill=’#1f1′, width=2)
canvas.pack(fill=BOTH, expand=1)
def main(): root = Tk() ex = Example() root.geometry(«330×220+300+300») root.mainloop()
if __name__ == ‘__main__’: main() |
Мы нарисовали разные формы в окне:
- круг;
- овал;
- прямоугольник;
- дугу и многугольник.
Контур окрашен в красный цвет, фигуры были наполнены зеленым цветом. Ширина контура указана в 2 пикселя.
Python
canvas.create_oval( 10, 10, 80, 80, outline=»red», fill=»green», width=2 )
canvas.create_oval( 10, 10, 80, 80, outline=»red», fill=»green», width=2 ) |
Метод create_oval() используется для того, чтобы создать круг в Tkinter. Первые четыре параметра определяют ограничивающие координаты фигуры. Иными словами, это x
и y
координаты верхней левой и правой нижней точек квадрата, в который помещен круг.
Python
canvas.create_rectangle( 230, 10, 290, 60, outline=»#f11″, fill=»#1f1″, width=2 )
canvas.create_rectangle( 230, 10, 290, 60, outline=»#f11″, fill=»#1f1″, width=2 ) |
Мы нарисовали прямоугольник в Tkinter. Координаты снова обозначают ограничительные точки с координатами x
и y
..
Python
canvas.create_arc( 30, 200, 90, 100, start=0, extent=210, outline=»#f11″, fill=»#1f1″, width=2 )
canvas.create_arc( 30, 200, 90, 100, start=0, extent=210, outline=»#f11″, fill=»#1f1″, width=2 ) |
С помощью этого кода мы создаем дугу. Дуга является частью круга. Мы указывает ограничительные координаты нашей дуги.
Успейте заказать просмотры на видео в YouTube ДокторСмм по наиболее дешевой цене с большими оптовыми скидками. Кроме того, с заказом Вы сможете получить также персональные условия на приобретение ресурса с возможностью выбора более подходящей для Вашей ситуации скорости поступления просмотров. Торопитесь, скидки действуют ограниченное время!
С помощью параметра start мы устанавливаем угол дуги. Параметр extent указывает на размер угла.
Python
points = [ 150, 100, 200, 120, 240, 180, 210, 200, 150, 150, 100, 200 ] canvas.create_polygon( points, outline=’red’, fill=’green’, width=2 )
1 2 3 4 5 6 7 8 9 | points = [ 150, 100, 200, 120, 240, 180, 210, 200, 150, 150, 100, 200 ]
canvas. create_polygon( points, outline=’red’, fill=’green’, width=2 ) |
Данный код позволяет нам создать многоугольник. У этой фигуры присутствует большое количество углов. Чтобы создать многоугольник в Tkinter, нам нужно задать несколько координат, используя метод create_polygon().
Вставляем изображение в Canvas
В данном примере мы рассмотрим, как вставить изображение в canvas виджете.
В данном примере используется файл изображения tatras.jpg
который нужно сохранить рядом с нами кодом:
- tatras.jpg
draw_image.py
Python
from tkinter import Tk, Canvas, Frame, BOTH, NW from PIL import Image, ImageTk class Example(Frame): def __init__(self): super().__init__() self.initUI() def initUI(self): self. master.title(«Изображение в Canvas») self.pack(fill=BOTH, expand=1) self.img = Image.open(«tatras.jpg») self.tatras = ImageTk.PhotoImage(self.img) canvas = Canvas( self, width=self.img.size[0]+20, height=self.img.size[1]+20 ) canvas.create_image(10, 10, anchor=NW, image=self.tatras) canvas.pack(fill=BOTH, expand=1) def main(): root = Tk() ex = Example() root.mainloop() if __name__ == ‘__main__’: main()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | from tkinter import Tk, Canvas, Frame, BOTH, NW from PIL import Image, ImageTk
class Example(Frame):
def __init__(self): super(). __init__() self.initUI()
def initUI(self): self.master.title(«Изображение в Canvas») self.pack(fill=BOTH, expand=1)
self.img = Image.open(«tatras.jpg») self.tatras = ImageTk.PhotoImage(self.img)
canvas = Canvas( self, width=self.img.size[0]+20, height=self.img.size[1]+20 )
canvas.create_image(10, 10, anchor=NW, image=self.tatras) canvas.pack(fill=BOTH, expand=1)
def main(): root = Tk() ex = Example() root.mainloop()
if __name__ == ‘__main__’: main() |
В примере продемонстрировано как добавить изображение в Canvas.
Python
self.img = Image.open(«tatras.jpg») self.tatras = ImageTk.PhotoImage(self.img)
self. img = Image.open(«tatras.jpg») self.tatras = ImageTk.PhotoImage(self.img) |
Из библиотеки Pillow мы используем модули Image и ImageTk.
Python
canvas = Canvas( self, width=self.img.size[0]+20, height=self.img.size[1]+20 )
canvas = Canvas( self, width=self.img.size[0]+20, height=self.img.size[1]+20 ) |
Мы создаем виджет Canvas. Учитываем размеры изображения. Холст будет на 20 пикселей шире и на 20 пикселей выше, нежели наше изображение.
Python
canvas.create_image(10, 10, anchor=NW, image=self.tatras)
canvas.create_image(10, 10, anchor=NW, image=self.tatras) |
Мы используем метод create_image(), чтобы создать изображение на холсте. Чтобы показать изображение, оно закрепляется в северном и западном направлениях anchor=NW
нашего окна. Параметр image позволяет отобразить изображение.
Меняем шрифт и рисуем текст в Tkinter
В последнем примере мы рассмотрим рисование текста используя виджет Canvas в Tkinter.
draw_text.py
Python
from tkinter import Tk, Canvas, Frame, BOTH, W class Example(Frame): def __init__(self): super().__init__() self.initUI() def initUI(self): self.master.title(«Текст и Шрифт в Tkinter») self.pack(fill=BOTH, expand=1) canvas = Canvas(self) canvas.create_text( 20, 30, anchor=W, font=»DejavuSansLight», text=»Красное солнце сгорает дотла» ) canvas.create_text( 20, 60, anchor=W, font=»Arial», text=»На пылающий город падает тень» ) canvas. create_text( 20, 130, anchor=W, font=»TimesNewRoman», text=»Перемен!» ) canvas.create_text( 20, 160, anchor=W, font=»ComicSans», text=»Требуют наши сердца» ) canvas.create_text( 20, 190, anchor=W, font=»FreeSerif», text=»Перемен!» ) canvas.create_text( 20, 220, anchor=W, font=»LatoThin», text=»Требуют наши глаза» ) canvas.pack(fill=BOTH, expand=1) def main(): root = Tk() ex = Example() root.geometry(«420×250+300+300») root.mainloop() if __name__ == ‘__main__’: main()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | from tkinter import Tk, Canvas, Frame, BOTH, W
class Example(Frame):
def __init__(self): super(). __init__() self.initUI()
def initUI(self): self.master.title(«Текст и Шрифт в Tkinter») self.pack(fill=BOTH, expand=1)
canvas = Canvas(self) canvas.create_text( 20, 30, anchor=W, font=»DejavuSansLight», text=»Красное солнце сгорает дотла» )
canvas.create_text( 20, 60, anchor=W, font=»Arial», text=»На пылающий город падает тень» )
canvas.create_text( 20, 130, anchor=W, font=»TimesNewRoman», text=»Перемен!» )
canvas.create_text( 20, 160, anchor=W, font=»ComicSans», text=»Требуют наши сердца» )
canvas.create_text( 20, 190, anchor=W, font=»FreeSerif», text=»Перемен!» )
canvas. create_text( 20, 220, anchor=W, font=»LatoThin», text=»Требуют наши глаза» )
canvas.pack(fill=BOTH, expand=1)
def main(): root = Tk() ex = Example() root.geometry(«420×250+300+300») root.mainloop()
if __name__ == ‘__main__’: main() |
Мы рисуем слова из песни в нашем окне.
Python
canvas.create_text( 20, 30, anchor=W, font=»DejavuSansLight», text=»Красное солнце сгорает дотла» )
canvas.create_text( 20, 30, anchor=W, font=»DejavuSansLight», text=»Красное солнце сгорает дотла» ) |
Первые два параметра – это x
и y
координаты центральной точки текста. Если мы закрепим текстовый объект по направлению запада anchor=W
, текст будет начинаться в этой части окна. Параметр font позволяет нам менять шрифт текста, а параметр text
отображает написанный текст в окне.
Vasile Buldumac
Являюсь администратором нескольких порталов по обучению языков программирования Python, Golang и Kotlin. В составе небольшой команды единомышленников, мы занимаемся популяризацией языков программирования на русскоязычную аудиторию. Большая часть статей была адаптирована нами на русский язык и распространяется бесплатно.
E-mail: [email protected]
Образование
Universitatea Tehnică a Moldovei (utm.md)
- 2014 — 2018 Технический Университет Молдовы, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2020 Технический Университет Молдовы, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»
Как рисовать круги и дуги в HTML Canvas
Обзор
Canvas
имеет API для рисования кругов и дуг:
arc(x, y, радиус, startAngle, endAngle, против часовой стрелки)
: Рисует дугу с центром в точке (x, y) с радиусом r, начиная сstartAngle
и заканчиваяendAngle
, войдя внутрь заданное направление указанопротив часовой стрелки
(по умолчанию по часовой стрелке).arcTo(x1, y1, x2, y2, радиус)
: Рисует дугу с заданными контрольными точками и радиусом, соединенную с предыдущей точкой прямой линией.
Примечание. Радиус указывается в радианах, а не в градусах. 180180180 градусов следует преобразовать в радианы, иначе API воспримут это как 180180180рад. Мы можем конвертировать градусы в радианы с помощью этого алгоритма: (радианы=(Math.PI/180)*градусы)(радианы=(Math.PI/180)*градусы)(радианы=(Math.PI/180)*градусы).
В приведенных выше методах x,y,x1,y1x, y, x1, y1x,y,x1,y1 являются центральным положением окружности/дуги на сетке canvas
. радиус
радиус окружности/дуги. startAngle
— это угол (в радианах), с которого начинается рисование окружности/дуги. endAngle
— это угол (в радианах), при котором трассировка окружности/дуги остановится. antiClockWise
— направление трассировки окружности/дуги. Если antiClockWise
равно true
, окружность/дуга рисуется против часовой стрелки; в противном случае по часовой стрелке.
Поскольку все методы представляют собой дуги, рисовать ими окружность немного сложно.
Пример
const degToRad = (градусы) => (Math.PI / 180) * градусы context.arc(100, 100, 50, degToRad(0), degToRad(360), true) контекст.stroke()
Это нарисует круг.
Объяснение
Мы устанавливаем центр окружности, чтобы начать с x,yx,yx,y = (100,100)(100,100)(100,100), с радиусом 505050. Мы устанавливаем начальный угол в 000 градусов ( мы используем degToRag
для преобразования градусов в радианы) и конечный угол 360360360 градусов, чтобы сделать полный круг. Затем аргумент true
заставляет код трассировать окружность против часовой стрелки. Метод stroke()
рисует контур круга.
Примеры
Заполним круг методом fill
:
context. arc(100, 100, 50, degToRad(0), degToRad(360), true) контекст.заполнить()
Мы можем нарисовать дугу от 000 до 180180180:
context.arc(100, 100, 50, degToRad(0), degToRad(180), true) контекст.stroke()
Это нарисует дугу:
Это потому, что мы начинаем с угла 000 и останавливаемся на 180180180. Если мы изменим 180180180 на 360360360, код нарисует круг.
Теперь создадим закрашенную дугу:
context.arc(100, 100, 50, degToRad(0), degToRad(180), true) контекст.заполнить()
.
Примечание: Пожалуйста, обратитесь к следующим снимкам для получения информации, связанной с этой темой:
Рисование линий и контуров
Рисование треугольников
Заполнение контуров
Рисование прямоугольников
УЧАСТНИК
Чидуме Ннамди
Лицензия: Creative Commons-Attribution-ShareAlike 4.0 (CC-BY-SA 4.0)
Дизайны Circle Canvas, темы, шаблоны и загружаемые графические элементы на Dribbble
Посмотреть абстрактную геометрию воскресных кругов
Воскресные круги абстрактная геометрия
Посмотреть абстрактную круговую иллюстрацию данных
абстрактная круговая иллюстрация данных
Посмотреть Luceat ’20
Luceat ’20
Посмотреть экзотический цветовой круг
экзотический цветной круг
Посмотреть Элемента ’20
Элемента ’20
Просмотр P004
Посмотреть закат и восход луны
Закат и восход луны
Wkndshapes № 2
Посмотреть Превращение стен в холст
Превращение стен в холст
Просмотр Tinkerworks — Предложение логотипа, раунд 2
Tinkerworks — раунд предложений логотипа 2
View Stir: обзор продукта
Перемешивание: Обзор продукта
Просмотр чертежа с помощью холста HTML5
Рисование с помощью холста HTML5
View Moldr — Мобильная концепция 📱
Moldr — Мобильная концепция 📱
Просмотр холста и кассеты
Холст и кассета
Посмотреть Абстрактный геометрический лабиринт
Абстрактный геометрический лабиринт
Посмотреть отпечатки на холсте
Печать на холсте
Просмотр аналога
Аналоговый
Посмотреть сумки-тоут «Patience»
Сумки «Терпение»
Посмотреть красочные волны мелка иллюстрации
Иллюстрация красочных волн мелками
Просмотреть пространство
Посмотреть печатную иллюстрацию жидкой материи
Распечатка с изображением жидкости
Посмотреть картину
покраска
Просмотрите 1,1-секундную заявку Inkscape на конкурс об экране
Вторая заявка Inkscape 1.