Рисование прямоугольников в питоне

Pygame Drawing a Rectangle

I’m making a game that requires knowing how to draw a rectangle in Python (3.2). I have checked lot of sources but none show exactly how to do it.

6 Answers 6

import pygame, sys from pygame.locals import * def main(): pygame.init() DISPLAY=pygame.display.set_mode((500,400),0,32) WHITE=(255,255,255) BLUE=(0,0,255) DISPLAY.fill(WHITE) pygame.draw.rect(DISPLAY,BLUE,(200,150,100,50)) while True: for event in pygame.event.get(): if event.type==QUIT: pygame.quit() sys.exit() pygame.display.update() main() 

This creates a simple window 500 pixels by 400 pixels that is white. Within the window will be a blue rectangle. You need to use the pygame.draw.rect to go about this, and you add the DISPLAY constant to add it to the screen, the variable blue to make it blue (blue is a tuple that values which equate to blue in the RGB values and it’s coordinates.

import pygame screen=pygame.display.set_mode([640, 480]) screen.fill([255, 255, 255]) red=255 blue=0 green=0 left=50 top=50 width=90 height=90 filled=0 pygame.draw.rect(screen, [red, blue, green], [left, top, width, height], filled) pygame.display.flip() running=True while running: for event in pygame.event.get(): if event.type==pygame.QUIT: running=False pygame.quit() 

pygame.draw.rect(screen, color, (x,y,width,height), thickness) draws a rectangle (x,y,width,height) is a Python tuple x,y are the coordinates of the upper left hand corner width, height are the width and height of the rectangle thickness is the thickness of the line. If it is zero, the rectangle is filled

With the module pygame.draw shapes like rectangles, circles, polygons, liens, ellipses or arcs can be drawn. Some examples:

Читайте также:  Result modifier php битрикс

pygame.draw.rect draws filled rectangular shapes or outlines. The arguments are the target Surface (i.s. the display), the color, the rectangle and the optional outline width. The rectangle argument is a tuple with the 4 components (x, y, width, height), where (x, y) is the upper left point of the rectangle. Alternatively, the argument can be a pygame.Rect object:

pygame.draw.rect(window, color, (x, y, width, height)) 
rectangle = pygame.Rect(x, y, width, height) pygame.draw.rect(window, color, rectangle) 

pygame.draw.circle draws filled circles or outlines. The arguments are the target Surface (i.s. the display), the color, the center, the radius and the optional outline width. The center argument is a tuple with the 2 components (x, y):

pygame.draw.circle(window, color, (x, y), radius) 

pygame.draw.polygon draws filled polygons or contours. The arguments are the target Surface (i.s. the display), the color, a list of points and the optional contour width. Each point is a tuple with the 2 components (x, y):

pygame.draw.polygon(window, color, [(x1, y1), (x2, y2), (x3, y3)]) 

import pygame pygame.init() window = pygame.display.set_mode((200, 200)) clock = pygame.time.Clock() run = True while run: clock.tick(60) for event in pygame.event.get(): if event.type == pygame.QUIT: run = False window.fill((255, 255, 255)) pygame.draw.rect(window, (0, 0, 255), (20, 20, 160, 160)) pygame.draw.circle(window, (255, 0, 0), (100, 100), 80) pygame.draw.polygon(window, (255, 255, 0), [(100, 20), (100 + 0.8660 * 80, 140), (100 - 0.8660 * 80, 140)]) pygame.display.flip() pygame.quit() exit() 

Источник

Рисование прямоугольников в питоне

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

tkinter python рисование

tkinter python рисование

Всем привет! Сегодня мы с вами познакомимся с элементом canvas который переводится как холст. Именно на данном холсте мы можем производить отрисовку различных фигур и текста. Итак, поехали!

Для того чтобы начать отрисовку в окне необходимо создать элемент canvas.

canvas = Canvas(window, width=600,height=600,bg="gray", cursor="pencil")

C помощью виджета canvas у нас создается холст. В него мы передали следующие параметры:

width, height — ширина и высота холста

bg — заливка холста(gray — серый цвет)

cursor — курсор в фокусе холста(pencil — карандаш)

from tkinter import * window = Tk() window.title('Работа с canvas') canvas = Canvas(window,width=600,height=600,bg="gray", cursor="pencil") canvas.pack() window.mainloop()

Элемент canvas

C помощью метода pack() мы выводим наш холст в главное окно.

Все теперь мы можем переходить к отрисовке. Начнем с простых линий.

canvas.create_line(0,0,600,600,width=5,fill="yellow") canvas.create_line(0,600,600,0,width=5,fill="yellow")

линии в canvas tkinter

Здесь мы создали две прямых линии. Для их создания воспользовались методом create_line() который принимает в себя следующие параметры.

Первые два параметра это координаты x,y первой точки начало отрезка.

Вторые два параметры это координаты x,y второй точки конец отрезка.

fill — заливка, цвет линии(yellow — желтый).

Для того чтобы на холсте нарисовать прямоугольник или квадрат, нужно воспользоваться методом create_rectangle().

canvas.create_rectangle(50,250,300,500,fill="white",outline="blue")

квадрат в canvas tkinter

C помощью метода create_rectangle()мы нарисовали квадрат. Данный метод принимает в себя следующие параметры:

Первые два параметра координаты левого верхнего угла прямоугольника.

Вторые два параметра координаты правого нижнего угла прямоугольника.

fill — цвет заливки прямоугольника.

outline — цвет рамки прямоугольника.

Теперь переходим к отрисовке эллипсов и кругов.

Для того чтобы нарисовать круг или овал нам достаточно воспользоваться методом create_oval().

canvas.create_oval([400,250],[450,300],fill="pink")

круг в canvas

В основе отрисовки круга с помощью данного метода лежит отрисовка прямоугольника. То есть по сути мы отрисовываем невидимый квадрат куда может быть помещен в полную высоту и ширину квадрат или овал.

Данный метод принимает собой следующие аргументы:

Первые два аргумента в квадратных скобочках координаты x,y левого верхнего угла квадрата.

Вторые два аргумента в квадратных скобочках координаты x, y правого нижнего угла квадрата.

Для отрисовки более сложных фигур треугольников, многоугольников, многогранников.

Мы можем воспользоваться методом create_polygon().

canvas.create_polygon([400,400],[300,400],[350,300],fill="gray", outline="yellow")

сложные фигуры в canvas

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

Точек в разных координатах можно создавать сколько угодно. В результате можно нарисовать фигуру практически любой сложности. Свойство fill отвечает за цвет заливки фигуры, а outline за ее контур. Заметьте мы указали цвет заливки точно такой же как и цвет холста и в результате у нас получился эффект не закрашенной фигуры.

И напоследок рассмотрим отрисовку текста в canvas.

canvas.create_text(250,280,text="Текст в canvas", font="Verdana 12",justify=CENTER,fill="red")

текст в canvas tkinter

За отрисовку текста в canvas отвечает метод create_text(). В него передаются следующие параметры:

Первые два параметра координаты x, y расположения текста на холсте.

text — текст который мы хотим нарисовать

font — шрифт и размер текста

justify — выравнивание текста(слева, справа, по центру)

Весь написанный за сегодня код выглядит так:

from tkinter import * window = Tk() window.title('Работа с canvas') canvas = Canvas(window,width=600,height=600,bg="gray", cursor="pencil") canvas.create_line(0,0,600,600,width=5,fill="yellow") canvas.create_line(0,600,600,0,width=5,fill="yellow") canvas.create_rectangle(50,250,300,500,fill="white",outline="blue") canvas.create_oval([400,250],[450,300],fill="pink") canvas.create_polygon([400,400],[300,400],[350,300],fill="gray", outline="yellow") canvas.create_text(250,280,text="Текст в canvas", font="Verdana 12",justify=CENTER,fill="red") canvas.pack() window.mainloop()

Отлично! Сегодня мы с вами познакомились с основами рисования canvas библиотеки tkinter.

Если у вас появились какие либо вопросы пишите в группу

или оставляйте их в комментариях к данной статье.

Также у меня есть канал на

где я каждую неделю публикую новые видео посвященные веб разработке. Так что переходите и будем развиваться вместе.

На этом у меня на сегодня все. Желаю вам успехов и удачи! Пока!

Оцените статью:

Статьи

Комментарии

Внимание. Комментарий теперь перед публикацией проходит модерацию

Евгений

Не подскажите как повернуть текст на 90 градусов чтобы подписать ось Y

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm

Добавить приложение на рабочий стол

Источник

Рисуем геометрические фигуры в Python с помощью Pillow

Рисуем в Pillow Python

Модуль ImageDraw из библиотеки обработки изображений Pillow (PIL) предоставляет методы для рисования круга, квадрата и прямой линии в Python.

Создание объекта Draw в Python

Используя объекта Image мы создадим фоновое изображение на которой мы будем рисовать наши фигуры при помощи объекта Draw . Не забудьте импортировать модуль Image и ImageDraw в начале кода.

Здесь создается пустое изображение с размером 500 на 300 пикселей и с тёмно желтым фоном.

Создание картинки в Pillow

Рисуем фигуры в Pillow: ellipse, rectangle и line

Вызываем методы рисования из объекта Draw для рисования фигур на нашем желтом фоне.

Рисуем эллипс, прямоугольник и прямую линию в качестве примера.

Рисуем фигуры в Python

Справочник по параметрам методов рисования

Даже если, способы рисования отличаются в зависимости от используемого метода, следующие параметры являются общими для всех.

Область рисования — xy

Параметр xy указывает прямоугольную область для рисования новой фигуры.

Уточняется один из следующих форматов:

  • (((Верхняя левая x координата, Верхняя левая y координата), (нижняя правая x координата, нижняя правая y координата)) ;
  • (Верхняя левая x координата, Верхняя левая y координата, нижняя правая x координата, нижняя правая y координата) .

В методах line() , polygon() и point() используются многочисленные координаты вместо двух точек, представляющих прямоугольную область.

Метод line() рисует прямую линию, которая связывает каждую точку, polygon() рисует многоугольник, а метод point() рисует точку в 1 пиксель для каждой указанной точки.

Параметр fill — заполняем фигуру определенным цветом

Параметр fill указывает какой цвет будет использован для заполнения нашей геометрической формы.

Спецификация формата цвета отличается в зависимости от указанного режима изображения (объект Image ):

  • RGB : Указывает значение цвета в форме (R, G, B) ;
  • L (Черно-белое): Указывает значение (0-255) как целое число).

Значение по умолчанию None (не заполнено).

Есть три способа указать цвет, возьмем красный цвет, его можно записать так:

  • текстовый формат: red;
  • CSS формат (Шестнадцатеричный): #FF0000
  • RGB: (255, 0, 0)

Стоит учесть тот факт, что текстовый формат не имеет все цвета, кол-во доступных цветов ограничено в коде самой библиотеки. Вот весь список: https://github.com/python-pillow/Pillow/blob/8.1.0/src/PIL/ImageColor.py#L148

Лучше всего использовать шестнадцатеричный формат #FFFFFF (белый).

Параметр outline — цвет границ

Параметр outline указывает на цвет границы фигуры.

Спецификация формата цвета такая же, как и у параметра fill которого мы обсуждали выше. Значение по умолчанию равно None (без границ).

Параметр width — размер границ

Вне зависимости от рисуемой фигуры, вы можете указать размер в пикселях для границы фигуры.

Рисование эллипса и прямоугольника в Python

Метод ellipse() рисует эллипс, область рисования указывается в параметр xy . Если мы зададим четыре координата которые будут соответствовать квадрату, то у нас получится ровный круг.

Нарисуем небольшой смайл используя круги.

Источник

Оцените статью