Spec-Zone.ru › Matplotlib 3.5

matplotlib.patches.Arc

classmatplotlib.patches.Arc(xy, width, height, angle=0.0, theta1=0.0, theta2=360.0, **kwargs)[source]

Bases: matplotlib.patches.Ellipse

Эллиптическая дуга, т.е. отрезок эллипса.

Из-за внутренних оптимизаций существуют определённые ограничения при использовании Arc:

  • Дугу нельзя заполнить.
  • Дуга должна использоваться в экземпляре Axes. Её нельзя добавить непосредственно в Figure, так как она оптимизирована для отрисовки только сегментов, находящихся внутри области осей с высоким разрешением.
Параметры
xy(float, float)

Центр эллипса.

widthfloat

Длина горизонтальной оси.

heightfloat

Длина вертикальной оси.

anglefloat

Поворот эллипса в градусах (против часовой стрелки).

theta1, theta2float, по умолчанию: 0, 360

Углы начала и конца дуги в градусах. Эти значения относительны к angle, например, если angle = 45 и theta1 = 90, абсолютный начальный угол составляет 135. По умолчанию theta1 = 0, theta2 = 360, т.е. полный эллипс. Дуга рисуется против часовой стрелки. Углы, большие или равные 360, или меньшие 0, представлены эквивалентным углом в диапазоне [0, 360), используя входное значение по модулю 360.

Другие параметры
**kwargsPatch свойства

Большинство свойств Patch поддерживаются в качестве ключевых аргументов, за исключением fill и facecolor, так как заполнение не поддерживается.

Свойство

Описание

agg_filter

функция фильтра, которая принимает массив float (m, n, 3) и значение dpi, и возвращает массив float (m, n, 3)

alpha

неизвестно

animated

bool

antialiased или aa

bool или None

capstyle

CapStyle или {'butt', 'projecting', 'round'}

clip_box

Bbox

clip_on

bool

clip_path

Patch или (Path, Transform) или None

color

цвет

edgecolor или ec

цвет или None

facecolor или fc

цвет или None

figure

Figure

fill

bool

gid

str

hatch

{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}

in_layout

bool

joinstyle

JoinStyle или {'miter', 'round', 'bevel'}

label

объект

linestyle или ls

{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}

linewidth или lw

float или None

path_effects

AbstractPathEffect

picker

None или bool или float или вызываемый объект

rasterized

bool

sketch_params

(scale: float, length: float, randomness: float)

snap

bool или None

transform

Transform

url

str

visible

bool

zorder

float

draw(renderer)[source]

Отрисовка дуги в заданном renderer.

Примечания

Эллипсы обычно рисуются с помощью приближения, использующего восемь кубических кривых Безье. Ошибка этого приближения составляет 1.89818e-6, согласно этому не проверенному источнику:

Lancaster, Don. Приближение окружности или эллипса с помощью четырех кубических кривых Безье.

https://www.tinaja.com/glib/ellipse4.pdf

Существует случай, когда очень большие эллипсы необходимо отрисовать с высокой точностью, и слишком дорого обходится рендеринг всего эллипса достаточным количеством сегментов (либо сплайнами, либо сегментами линии). Поэтому, в случае, если любой из радиусов эллипса достаточно велик, чтобы ошибка приближения сплайнами была заметна (больше одного пиксельного смещения от идеала), используется другой метод.

В этом случае рисуются только видимые части эллипса, и каждая видимая дуга использует фиксированное количество сегментов сплайна (8). Алгоритм выполняется следующим образом:

  1. Определяются точки, в которых эллипс пересекает ограничивающую прямоугольную область осей координат. (Это делается путем выполнения обратного преобразования ограничивающей прямоугольной области осей координат таким образом, что она относительна к единичной окружности — это делает вычисление пересечения намного проще, чем прямое вычисление пересечения эллипса, повернутого под углом).

    Для этого используется алгоритм пересечения прямой и окружности из:

    Vince, John. Геометрия для компьютерной графики: формулы, примеры и доказательства. Лондон: Springer-Verlag, 2005.

  2. Вычисляются углы каждой из точек пересечения.
  3. Проходя против часовой стрелки, начиная с положительного направления оси x, каждая из видимых дуг между парами вершин рисуется с использованием метода приближения дуг Безье, реализованного в Path.arc.
set(*, agg_filter=<UNSET>, alpha=<UNSET>, angle=<UNSET>, animated=<UNSET>, antialiased=<UNSET>, capstyle=<UNSET>, center=<UNSET>, clip_box=<UNSET>, clip_on=<UNSET>, clip_path=<UNSET>, color=<UNSET>, edgecolor=<UNSET>, facecolor=<UNSET>, fill=<UNSET>, gid=<UNSET>, hatch=<UNSET>, height=<UNSET>, in_layout=<UNSET>, joinstyle=<UNSET>, label=<UNSET>, linestyle=<UNSET>, linewidth=<UNSET>, path_effects=<UNSET>, picker=<UNSET>, rasterized=<UNSET>, sketch_params=<UNSET>, snap=<UNSET>, transform=<UNSET>, url=<UNSET>, visible=<UNSET>, width=<UNSET>, zorder=<UNSET>)[source]

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

Поддерживаемые свойства:

Свойство

Описание

agg_filter

функция фильтра, которая принимает (m, n, 3) массив чисел с плавающей точкой и значение dpi, и возвращает (m, n, 3) массив

alpha

скаляр или None

angle

число с плавающей точкой

animated

логическое значение

antialiased или aa

логическое значение или None

capstyle

CapStyle или {'butt', 'projecting', 'round'}

center

(число с плавающей точкой, число с плавающей точкой)

clip_box

Bbox

clip_on

логическое значение

clip_path

Фигура или (Контур, Преобразование) или None

color

цвет

edgecolor или ec

цвет или None

facecolor или fc

цвет или None

figure

Figure

fill

логическое значение

gid

строка

hatch

{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}

height

число с плавающей точкой

in_layout

логическое значение

joinstyle

JoinStyle или {'miter', 'round', 'bevel'}

label

объект

linestyle или ls

{'-', '--', '-.', ':', '', (смещение, последовательность вкл./выкл), ...}

linewidth или lw

число с плавающей точкой или None

path_effects

AbstractPathEffect

picker

None или логическое значение или число с плавающей точкой или вызываемая функция

rasterized

логическое значение

sketch_params

(масштаб: число с плавающей точкой, длина: число с плавающей точкой, случайность: число с плавающей точкой)

snap

логическое значение или None

transform

Transform

url

строка

visible

логическое значение

width

число с плавающей точкой

zorder

число с плавающей точкой

Примеры использования matplotlib.patches.Arc

Scale invariant angle label

Метка угла, инвариантная к масштабу

Ellipse With Units

Эллипс с единицами измерения

© 2012–2021 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.5.1/api/_as_gen/matplotlib.patches.Arc.html

Spec-Zone.ru

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