Spec-Zone.ru › Pygame
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) на заданной поверхности.

Parameters
  • surface (Surface) -- поверхность для рисования

  • x (int) -- координата x пикселя

  • y (int) -- координата y пикселя

  • color (Color или tuple(int, int, int, [int])) -- цвет для рисования, значение альфа является необязательным, если используется кортеж (RGB[A])

Returns

None

Return type

NoneType

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
  • surface (Surface) -- поверхность для рисования

  • rect (Rect) -- прямоугольник для рисования, позиция и размеры

  • color (Color или tuple(int, int, int, [int])) -- цвет для рисования, значение альфа является необязательным, если используется кортеж (RGB[A])

Returns

None

Return type

NoneType

Примечание

Атрибуты rect.bottom и rect.right прямоугольника pygame.Rect всегда лежат на один пиксель за пределами его фактической границы. Поэтому эти значения не будут включены в рисование.

pygame.gfxdraw.box()
рисует заполненный прямоугольник
box(surface, rect, color) -> None

Рисует заполненный прямоугольник на заданной поверхности. Для незаполненного прямоугольника используйте rectangle().

Параметры
  • surface (Surface) -- поверхность для рисования

  • rect (Rect) -- прямоугольник для рисования, положение и размеры

  • color (Color или кортеж(int, int, int, [int])) -- цвет для рисования, значение альфа-канала необязательно, если используется кортеж (RGB[A])

Возвращает

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 < 2

  • ValueError -- если 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API