matplotlib.patches.Arc

class matplotlib.patches.Arc(xy, width, height, angle=0.0, theta1=0.0, theta2=360.0, **kwargs)[源代码]

基类:matplotlib.patches.Ellipse

椭圆弧,即椭圆的一段。

由于内部优化,在使用ARC时存在某些限制:

  • 无法填充圆弧。
  • 圆弧必须用于 Axes 实例。它不能直接添加到 Figure 因为它已优化为仅以高分辨率渲染轴边界框内的线段。
参数:
xy(浮标,浮标)

椭圆的中心。

width浮动

水平轴的长度。

height浮动

垂直轴的长度。

angle浮动

椭圆的旋转度(逆时针)。

TaTa1、TaTa2浮动,默认值:0,360

弧的起始角和终止角(度)。这些值是相对于 ,例如 = 45和 THEA1 =90,绝对起始角为135。违约 THEA1 =0, TaTa2 =360,即完整椭圆。沿逆时针方向绘制圆弧。大于或等于360或小于0的角度用[0,360]范围内的等效角度表示,方法是取输入值mod 360。

其他参数:
**kwargsPatch 性质修补程序属性

大多数 Patch 属性作为关键字参数受支持,但 fill脸色 因为不支持填充。

财产 描述
agg_filter 一种过滤函数,它接受一个(m,n,3)浮点数组和一个dpi值,并返回一个(m,n,3)数组。
alpha 浮动或无
animated 布尔
antialiased 或者aa 未知的
capstyle “对接”、“圆形”、“突出”
clip_box Bbox
clip_on 布尔
clip_path 面片或(路径、变换)或无
color 颜色
contains 未知的
edgecolor 或ec 颜色或无或“自动”
facecolor 或fc 颜色或无
figure Figure
fill 布尔
gid STR
hatch '/'、''、''、'-'、'+'、'X'、'O'、'O'、'、'、'*'
in_layout 布尔
joinstyle 'miter'、'round'、'bevel'
label 对象
linestyle 或ls '-'、'-'、'-'、'-'、':'、'、'、'(偏移量、开/关顺序)、…
linewidth 或lw 浮动或无
path_effects AbstractPathEffect
picker 无、布尔或可呼叫
rasterized 布尔或无
sketch_params (比例:浮动,长度:浮动,随机性:浮动)
snap 布尔或无
transform Transform
url STR
visible 布尔
zorder 浮动
__init__(xy, width, height, angle=0.0, theta1=0.0, theta2=360.0, **kwargs)[源代码]
参数:
xy(浮标,浮标)

椭圆的中心。

width浮动

水平轴的长度。

height浮动

垂直轴的长度。

angle浮动

椭圆的旋转度(逆时针)。

TaTa1、TaTa2浮动,默认值:0,360

弧的起始角和终止角(度)。这些值是相对于 ,例如 = 45和 THEA1 =90,绝对起始角为135。违约 THEA1 =0, TaTa2 =360,即完整椭圆。沿逆时针方向绘制圆弧。大于或等于360或小于0的角度用[0,360]范围内的等效角度表示,方法是取输入值mod 360。

其他参数:
**kwargsPatch 性质修补程序属性

大多数 Patch 属性作为关键字参数受支持,但 fill脸色 因为不支持填充。

财产 描述
agg_filter 一种过滤函数,它接受一个(m,n,3)浮点数组和一个dpi值,并返回一个(m,n,3)数组。
alpha 浮动或无
animated 布尔
antialiased 或者aa 未知的
capstyle “对接”、“圆形”、“突出”
clip_box Bbox
clip_on 布尔
clip_path 面片或(路径、变换)或无
color 颜色
contains 未知的
edgecolor 或ec 颜色或无或“自动”
facecolor 或fc 颜色或无
figure Figure
fill 布尔
gid STR
hatch '/'、''、''、'-'、'+'、'X'、'O'、'O'、'、'、'*'
in_layout 布尔
joinstyle 'miter'、'round'、'bevel'
label 对象
linestyle 或ls '-'、'-'、'-'、'-'、':'、'、'、'(偏移量、开/关顺序)、…
linewidth 或lw 浮动或无
path_effects AbstractPathEffect
picker 无、布尔或可呼叫
rasterized 布尔或无
sketch_params (比例:浮动,长度:浮动,随机性:浮动)
snap 布尔或无
transform Transform
url STR
visible 布尔
zorder 浮动
__module__ = 'matplotlib.patches'
__str__()[源代码]

返回str(self)。

draw(renderer)[源代码]

将弧绘制到给定的 渲染器 .

笔记

椭圆通常使用八个三次贝塞尔样条曲线的近似值绘制。根据未经验证的来源,该近似值的误差为1.89818E-6:

Lancaster,Don。 用四个贝塞尔三次样条曲线逼近圆或椭圆。

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

在这种情况下,必须以非常高的精度绘制非常大的椭圆,并且用足够的段(样条线或线段)绘制整个椭圆的成本太高。因此,如果椭圆的任一半径足够大,样条曲线近似值的误差将可见(与理想值的偏移量大于一个像素),则使用不同的技术。

在这种情况下,只绘制椭圆的可见部分,每个可见弧使用固定数量的样条曲线段(8)。算法如下:

  1. 椭圆与轴边界框相交的点位于此处。(这样做是在轴bbox上执行逆变换,使其相对于单位圆——这使得交叉计算比直接执行旋转椭圆交叉容易得多)。

    这将使用“与圆相交的直线”算法:

    文斯,约翰。 计算机图形学几何:公式,例子和证明。 伦敦:斯普林格·维拉格,2005年。

  2. 计算每个交叉点的角度。

  3. 从正x方向逆时针开始,使用中实现的贝塞尔曲线近似技术绘制顶点对之间的每个可见弧段。 Path.arc .

使用实例 matplotlib.patches.Arc