- pygame.gfxdraw
-
модуль pygame для рисования фигур
ЭКСПЕРИМЕНТАЛЬНО!: Этот API может измениться или исчезнуть в последующих версиях pygame. Если вы его используете, ваш код может сломаться с выходом следующей версии pygame.
Пакет pygame не импортирует gfxdraw автоматически при загрузке, поэтому его необходимо импортировать явно для использования.
import pygame import pygame.gfxdraw
Для всех функций аргументы строго позиционные, а координаты и радиусы принимаются в виде целых чисел. Аргумент
colorможет иметь один из следующих форматов:объект
pygame.Colorтройку
(RGB)(кортеж/список)четверку
(RGBA)(кортеж/список)
Функции
rectangle()иbox()примут любую(x, y, w, h)последовательность для своего аргументаrect, хотя предпочтительны экземплярыpygame.Rect.Для рисования заполненной фигуры с антиалиасингом сначала используйте антиалиасинговую (aa*) версию функции, а затем заполненную (filled_*). Например:
col = (255, 0, 0) surf.fill((255, 255, 255)) pygame.gfxdraw.aacircle(surf, x, y, 30, col) pygame.gfxdraw.filled_circle(surf, x, y, 30, col)
Примечание
Для многопоточности каждая из функций освобождает GIL во время C-части вызова.
Примечание
См. модуль
pygame.drawдля альтернативных методов рисования. Модульpygame.gfxdrawотличается от модуляpygame.drawиспользуемым API и различными доступными функциями рисования.pygame.gfxdrawоборачивает примитивы из библиотеки SDL_gfx, а не использует изменённые версии.Новое в pygame 1.9.0.
- pygame.gfxdraw.pixel()
-
рисование пикселяpixel(surface, x, y, color) -> None
Рисует отдельный пиксель в позиции (x, y) на заданной поверхности.
- pygame.gfxdraw.hline()
-
рисование горизонтальной линииhline(surface, x1, x2, y, color) -> None
Рисует прямую горизонтальную линию (
(x1, y)до(x2, y)) на заданной поверхности. Нет заглушек.- Parameters
-
surface (Surface) -- поверхность для рисования
x1 (int) -- координата x одного конца линии
x2 (int) -- координата x другого конца линии
y (int) -- координата y линии
color (Color или tuple(int, int, int, [int])) -- цвет для рисования, значение альфа является необязательным, если используется кортеж
(RGB[A])
- Returns
-
None - Return type
-
NoneType
- pygame.gfxdraw.vline()
-
рисование вертикальной линииvline(surface, x, y1, y2, color) -> None
Рисует прямую вертикальную линию (
(x, y1)до(x, y2)) на заданной поверхности. Нет заглушек.- Parameters
-
surface (Surface) -- поверхность для рисования
x (int) -- координата x линии
y1 (int) -- координата y одного конца линии
y2 (int) -- координата y другого конца линии
color (Color или tuple(int, int, int, [int])) -- цвет для рисования, значение альфа является необязательным, если используется кортеж
(RGB[A])
- Returns
-
None - Return type
-
NoneType
- pygame.gfxdraw.line()
-
рисование линииline(surface, x1, y1, x2, y2, color) -> None
Рисует прямую линию (
(x1, y1)до(x2, y2)) на заданной поверхности. Нет заглушек.- Parameters
-
surface (Surface) -- поверхность для рисования
x1 (int) -- координата x одного конца линии
y1 (int) -- координата y одного конца линии
x2 (int) -- координата x другого конца линии
y2 (int) -- координата y другого конца линии
color (Color или tuple(int, int, int, [int])) -- цвет для рисования, значение альфа является необязательным, если используется кортеж
(RGB[A])
- Returns
-
None - Return type
-
NoneType
- pygame.gfxdraw.rectangle()
-
рисование прямоугольникаrectangle(surface, rect, color) -> None
Рисует незаполненный прямоугольник на заданной поверхности. Для заполненного прямоугольника используйте
box().- Parameters
- Returns
-
None - Return type
-
NoneType
Примечание
Атрибуты
rect.bottomиrect.rightпрямоугольникаpygame.Rectвсегда лежат на один пиксель за пределами его фактической границы. Поэтому эти значения не будут включены в рисование.
- pygame.gfxdraw.box()
-
рисует заполненный прямоугольникbox(surface, rect, color) -> None
Рисует заполненный прямоугольник на заданной поверхности. Для незаполненного прямоугольника используйте
rectangle().- Параметры
- Возвращает
-
None - Тип возвращаемого значения
-
NoneType
Примечание
Атрибуты
rect.bottomиrect.rightобъектаpygame.Rectвсегда лежат на один пиксель за пределами его фактической границы. Поэтому эти значения не будут включены в процесс рисования.Примечание
Метод
pygame.Surface.fill()так же хорошо работает для рисования заполненных прямоугольников. Фактически,pygame.Surface.fill()может быть ускорен аппаратным обеспечением на некоторых платформах как в программных, так и в аппаратных режимах отображения.
- pygame.gfxdraw.circle()
-
рисует окружностьcircle(surface, x, y, r, color) -> None
Рисует незаполненную окружность на заданной поверхности. Для заполненной окружности используйте
filled_circle().- Параметры
-
surface (Surface) -- поверхность для рисования
x (int) -- координата x центра окружности
y (int) -- координата y центра окружности
r (int) -- радиус окружности
color (Color или кортеж(int, int, int, [int])) -- цвет для рисования, значение альфа-канала необязательно, если используется кортеж
(RGB[A])
- Возвращает
-
None - Тип возвращаемого значения
-
NoneType
- pygame.gfxdraw.aacircle()
-
рисует окружность с сглаживаниемaacircle(surface, x, y, r, color) -> None
Рисует незаполненную окружность с сглаживанием краёв на заданной поверхности.
- Параметры
-
surface (Surface) -- поверхность для рисования
x (int) -- координата x центра окружности
y (int) -- координата y центра окружности
r (int) -- радиус окружности
color (Color или кортеж(int, int, int, [int])) -- цвет для рисования, значение альфа-канала необязательно, если используется кортеж
(RGB[A])
- Возвращает
-
None - Тип возвращаемого значения
-
NoneType
- pygame.gfxdraw.filled_circle()
-
рисует заполненную окружностьfilled_circle(surface, x, y, r, color) -> None
Рисует заполненную окружность на заданной поверхности. Для незаполненной окружности используйте
circle().- Параметры
-
surface (Surface) -- поверхность для рисования
x (int) -- координата x центра окружности
y (int) -- координата y центра окружности
r (int) -- радиус окружности
color (Color или кортеж(int, int, int, [int])) -- цвет для рисования, значение альфа-канала необязательно, если используется кортеж
(RGB[A])
- Возвращает
-
None - Тип возвращаемого значения
-
NoneType
- pygame.gfxdraw.ellipse()
-
рисует эллипсellipse(surface, x, y, rx, ry, color) -> None
Рисует незаполненный эллипс на заданной поверхности. Для заполненного эллипса используйте
filled_ellipse().- Параметры
-
surface (Surface) -- поверхность для рисования
x (int) -- координата x центра эллипса
y (int) -- координата y центра эллипса
rx (int) -- горизонтальный радиус эллипса
ry (int) -- вертикальный радиус эллипса
color (Color или кортеж(int, int, int, [int])) -- цвет для рисования, значение альфа-канала необязательно, если используется кортеж
(RGB[A])
- Возвращает
-
None - Тип возвращаемого значения
-
NoneType
- pygame.gfxdraw.aaellipse()
-
рисует эллипс с сглаживаниемaaellipse(surface, x, y, rx, ry, color) -> None
Рисует незаполненный эллипс с сглаживанием краёв на заданной поверхности.
- Параметры
-
surface (Surface) -- поверхность для рисования
x (int) -- координата x центра эллипса
y (int) -- координата y центра эллипса
rx (int) -- горизонтальный радиус эллипса
ry (int) -- вертикальный радиус эллипса
color (Color или кортеж(int, int, int, [int])) -- цвет для рисования, значение альфа-канала необязательно, если используется кортеж
(RGB[A])
- Возвращает
-
None - Тип возвращаемого значения
-
NoneType
- pygame.gfxdraw.filled_ellipse()
-
рисование заполненного эллипсаfilled_ellipse(surface, x, y, rx, ry, color) -> None
Рисует заполненный эллипс на заданной поверхности. Для рисования незаполненного эллипса используйте
ellipse().- Parameters
-
surface (Surface) -- поверхность для рисования
x (int) -- координата x центра эллипса
y (int) -- координата y центра эллипса
rx (int) -- горизонтальный радиус эллипса
ry (int) -- вертикальный радиус эллипса
color (Color или tuple(int, int, int, [int])) -- цвет для рисования, значение альфа-канала необязательно, если используется кортеж
(RGB[A])
- Returns
-
None - Return type
-
NoneType
- pygame.gfxdraw.arc()
-
рисование дугиarc(surface, x, y, r, start_angle, stop_angle, color) -> None
Рисует дугу на заданной поверхности. Для рисования дуги с концами, соединёнными с центром, используйте
pie().Два аргумента угла задаются в градусах и указывают начальную и конечную позиции дуги. Дуга рисуется по часовой стрелке от
start_angleдоstop_angle. Еслиstart_angle == stop_angle, ничего не будет нарисовано.- Parameters
-
surface (Surface) -- поверхность для рисования
x (int) -- координата x центра дуги
y (int) -- координата y центра дуги
r (int) -- радиус дуги
start_angle (int) -- начальный угол в градусах
stop_angle (int) -- конечный угол в градусах
color (Color или tuple(int, int, int, [int])) -- цвет для рисования, значение альфа-канала необязательно, если используется кортеж
(RGB[A])
- Returns
-
None - Return type
-
NoneType
Примечание
Эта функция использует градусы, в то время как функция
pygame.draw.arc()использует радианы.
- pygame.gfxdraw.pie()
-
рисование сектораpie(surface, x, y, r, start_angle, stop_angle, color) -> None
Рисует незаполненный сектор на заданной поверхности. Сектор — это
arc()с концами, соединёнными с центром.Два аргумента угла задаются в градусах и указывают начальную и конечную позиции сектора. Сектор рисуется по часовой стрелке от
start_angleдоstop_angle. Еслиstart_angle == stop_angle, будет нарисована прямая линия от центральной позиции по заданному углу до длины радиуса.- Parameters
-
surface (Surface) -- поверхность для рисования
x (int) -- координата x центра сектора
y (int) -- координата y центра сектора
r (int) -- радиус сектора
start_angle (int) -- начальный угол в градусах
stop_angle (int) -- конечный угол в градусах
color (Color или tuple(int, int, int, [int])) -- цвет для рисования, значение альфа-канала необязательно, если используется кортеж
(RGB[A])
- Returns
-
None - Return type
-
NoneType
- pygame.gfxdraw.trigon()
-
рисование треугольникаtrigon(surface, x1, y1, x2, y2, x3, y3, color) -> None
Рисует незаполненный треугольник на заданной поверхности. Для рисования заполненного треугольника используйте
filled_trigon().Треугольник также можно нарисовать с помощью
polygon(), напримерpolygon(surface, ((x1, y1), (x2, y2), (x3, y3)), color)- Parameters
-
surface (Surface) -- поверхность для рисования
x1 (int) -- координата x первой вершины треугольника
y1 (int) -- координата y первой вершины треугольника
x2 (int) -- координата x второй вершины треугольника
y2 (int) -- координата y второй вершины треугольника
x3 (int) -- координата x третьей вершины треугольника
y3 (int) -- координата y третьей вершины треугольника
color (Color или tuple(int, int, int, [int])) -- цвет для рисования, значение альфа-канала необязательно, если используется кортеж
(RGB[A])
- Returns
-
None - Return type
-
NoneType
- pygame.gfxdraw.aatrigon()
-
рисование сглаженного треугольникаaatrigon(surface, x1, y1, x2, y2, x3, y3, color) -> None
Рисует незаполненный сглаженный треугольник на заданной поверхности.
Сглаженный треугольник также можно нарисовать с помощью
aapolygon(), напримерaapolygon(surface, ((x1, y1), (x2, y2), (x3, y3)), color)- Parameters
-
surface (Surface) -- поверхность для рисования
x1 (int) -- координата x первой вершины треугольника
y1 (int) -- координата y первой вершины треугольника
x2 (int) -- координата x второй вершины треугольника
y2 (int) -- координата y второй вершины треугольника
x3 (int) -- координата x третьей вершины треугольника
y3 (int) -- координата y третьей вершины треугольника
color (Color или tuple(int, int, int, [int])) -- цвет для рисования, значение альфа-канала необязательно, если используется кортеж
(RGB[A])
- Returns
-
None - Return type
-
NoneType
- pygame.gfxdraw.filled_trigon()
-
рисовать заполненный треугольникfilled_trigon(surface, x1, y1, x2, y2, x3, y3, color) -> None
Рисует заполненный треугольник на заданной поверхности. Для незаполненного треугольника используйте
trigon().Заполненный треугольник также можно нарисовать с помощью
filled_polygon(), напримерfilled_polygon(surface, ((x1, y1), (x2, y2), (x3, y3)), color)- Параметры
-
surface (Surface) -- поверхность для рисования
x1 (int) -- x-координата первого угла треугольника
y1 (int) -- y-координата первого угла треугольника
x2 (int) -- x-координата второго угла треугольника
y2 (int) -- y-координата второго угла треугольника
x3 (int) -- x-координата третьего угла треугольника
y3 (int) -- y-координата третьего угла треугольника
color (Цвет или кортеж(int, int, int, [int])) -- цвет для рисования, значение альфа-канала необязательно, если используется кортеж
(RGB[A])
- Возвращает
-
None - Тип возвращаемого значения
-
NoneType
- pygame.gfxdraw.polygon()
-
рисовать многоугольникpolygon(surface, points, color) -> None
Рисует незаполненный многоугольник на заданной поверхности. Для заполненного многоугольника используйте
filled_polygon().Смежные координаты в аргументе
points, а также первая и последняя точки, будут соединены отрезками. Например, для точек[(x1, y1), (x2, y2), (x3, y3)], отрезок будет нарисован от(x1, y1)до(x2, y2), от(x2, y2)до(x3, y3), и от(x3, y3)до(x1, y1).- Параметры
-
surface (Surface) -- поверхность для рисования
points (кортеж(координата) или список(координата)) -- последовательность из 3 или более координат (x, y), где каждая координата в последовательности должна быть кортежем/списком/
pygame.math.Vector2из 2 целых/плавающих чисел (значения с плавающей точкой будут усечены)color (Цвет или кортеж(int, int, int, [int])) -- цвет для рисования, значение альфа-канала необязательно, если используется кортеж
(RGB[A])
- Возвращает
-
None - Тип возвращаемого значения
-
NoneType
- Исключения
-
ValueError -- если
len(points) < 3(должно быть не менее 3 точек)IndexError -- если
len(coordinate) < 2(каждая координата должна содержать не менее 2 элементов)
- pygame.gfxdraw.aapolygon()
-
рисовать антиалиасированный многоугольникaapolygon(surface, points, color) -> None
Рисует незаполненный антиалиасированный многоугольник на заданной поверхности.
Смежные координаты в аргументе
points, а также первая и последняя точки, будут соединены отрезками. Например, для точек[(x1, y1), (x2, y2), (x3, y3)], отрезок будет нарисован от(x1, y1)до(x2, y2), от(x2, y2)до(x3, y3), и от(x3, y3)до(x1, y1).- Параметры
-
surface (Surface) -- поверхность для рисования
points (кортеж(координата) или список(координата)) -- последовательность из 3 или более координат (x, y), где каждая координата в последовательности должна быть кортежем/списком/
pygame.math.Vector2из 2 целых/плавающих чисел (значения с плавающей точкой будут усечены)color (Цвет или кортеж(int, int, int, [int])) -- цвет для рисования, значение альфа-канала необязательно, если используется кортеж
(RGB[A])
- Возвращает
-
None - Тип возвращаемого значения
-
NoneType
- Исключения
-
ValueError -- если
len(points) < 3(должно быть не менее 3 точек)IndexError -- если
len(coordinate) < 2(каждая координата должна содержать не менее 2 элементов)
- pygame.gfxdraw.filled_polygon()
-
рисовать заполненный многоугольникfilled_polygon(surface, points, color) -> None
Рисует заполненный многоугольник на заданной поверхности. Для незаполненного многоугольника используйте
polygon().Смежные координаты в аргументе
points, а также первая и последняя точки, будут соединены отрезками. Например, для точек[(x1, y1), (x2, y2), (x3, y3)], отрезок будет нарисован от(x1, y1)до(x2, y2), от(x2, y2)до(x3, y3), и от(x3, y3)до(x1, y1).- Параметры
-
surface (Surface) -- поверхность для рисования
points (кортеж(координата) или список(координата)) -- последовательность из 3 или более координат (x, y), где каждая координата в последовательности должна быть кортежем/списком/
pygame.math.Vector2из 2 целых/плавающих чисел (значения с плавающей точкой будут усечены)`color (Цвет или кортеж(int, int, int, [int])) -- цвет для рисования, значение альфа-канала необязательно, если используется кортеж
(RGB[A])
- Возвращает
-
None - Тип возвращаемого значения
-
NoneType
- Исключения
-
ValueError -- если
len(points) < 3(должно быть не менее 3 точек)IndexError -- если
len(coordinate) < 2(каждая координата должна содержать не менее 2 элементов)
- pygame.gfxdraw.textured_polygon()
-
отрисовка текстурированного многоугольникаtextured_polygon(surface, points, texture, tx, ty) -> None
Рисует текстурированный многоугольник на заданной поверхности. Для лучшей производительности поверхность и текстура должны иметь одинаковый формат.
Отображение альфа-текстуры с пиксельной точностью на поверхность с альфа-каналом пикселей будет отличаться от отображения с помощью
pygame.Surface.blit(). Кроме того, альфа-текстура с пиксельной точностью не может использоваться с целевым изображением с 8 битами на пиксель.Соседние координаты в аргументе
points, а также первая и последняя точки, будут соединены отрезками прямых. Например, для точек[(x1, y1), (x2, y2), (x3, y3)]будет нарисован отрезок прямой от(x1, y1)до(x2, y2), от(x2, y2)до(x3, y3)и от(x3, y3)до(x1, y1).- Параметры
-
surface (Surface) -- поверхность для рисования
points (tuple(координата) or list(координата)) -- последовательность из 3 или более (x, y) координат, где каждая координата в последовательности должна быть кортежем/списком/
pygame.math.Vector2из 2 целых/вещественных чисел (вещественные значения будут усечены)texture (Surface) -- текстура для рисования на многоугольнике
tx (int) -- смещение по оси x текстуры
ty (int) -- смещение по оси y текстуры
- Возвращает
-
None - Тип возвращаемого значения
-
NoneType
- Возбуждает
-
ValueError -- если
len(points) < 3(должно быть как минимум 3 точки)IndexError -- если
len(coordinate) < 2(каждая координата должна содержать как минимум 2 элемента)
- pygame.gfxdraw.bezier()
-
отрисовка кривой Безьеbezier(surface, points, steps, color) -> None
Рисует кривую Безье на заданной поверхности.
- Параметры
-
surface (Surface) -- поверхность для рисования
points (tuple(координата) or list(координата)) -- последовательность из 3 или более (x, y) координат, используемых для построения кривой, где каждая координата в последовательности должна быть кортежем/списком/
pygame.math.Vector2из 2 целых/вещественных чисел (вещественные значения будут усечены)steps (int) -- количество шагов для интерполяции, минимум 2
color (Color или tuple(int, int, int, [int])) -- цвет для рисования, значение альфа-канала необязательно, если используется кортеж
(RGB[A])
- Возвращает
-
None - Тип возвращаемого значения
-
NoneType
- Возбуждает
-
ValueError -- если
steps < 2ValueError -- если
len(points) < 3(должно быть как минимум 3 точки)IndexError -- если
len(coordinate) < 2(каждая координата должна содержать как минимум 2 элемента)
Изменить на GitHub
© Pygame Developers.
Licensed under the GNU LGPL License version 2.1.
https://www.pygame.org/docs/ref/gfxdraw.html