Spec-Zone.ru › Matplotlib 3.8

matplotlib.patches.Arc

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

Bases: Ellipse

Дуга эллипса, т.е. сегмент эллипса.

Из-за внутренних оптимизаций, дугу нельзя заполнить.

Параметры:
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

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

alpha

неизвестно

animated

bool

antialiased или aa

bool или None

capstyle

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

clip_box

BboxBase или None

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

mouseover

bool

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>, mouseover=<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

BboxBase или None

clip_on

Булево значение

clip_path

Объект Patch или (объект 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

mouseover

Булево значение

path_effects

Список AbstractPathEffect

picker

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

rasterized

Булево значение

sketch_params

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

snap

Булево значение или None

transform

Transform

url

Строка

visible

Булево значение

width

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

zorder

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

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

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

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

Эллипс с единицами

Эллипс с единицами

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

Spec-Zone.ru

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