module documentation

用于绘制例程的工具类。

BoundingBox 表示包围某些对象的边界框(矩形区域)的类。
FakeModule 一个对所有操作都会抛出异常的假模块
Point 表示二维平面上的点的类。
Rectangle 表示矩形的类。
函数 autocurve 计算图中每条边的曲率值,以确保在图形绘图中正确显示多条边。
函数 calculate_corner_radii 给定一个点列表和所需的角半径,返回一个包含每个点的建议角半径的列表,确保点的角半径永远不会超过该点与其邻居之间最小距离的一半。
函数 euclidean_distance 计算点 (x1,y1) 和 (x2,y2) 之间的欧几里得距离。
函数 evaluate_cubic_bezier 评估从点 (x0,y0) 到 (x3,y3) 通过控制点 (x1,y1) 和 (x2,y2) 在 t 处的贝塞尔曲线。t 通常在范围 [0; 1] 内,使得 0 返回 (x0, y0) 而 1 返回 (x3, y3)。
函数 get_bezier_control_points_for_curved_edge 辅助函数,用于计算从 (x1, y1) 到 (x2, y2) 的曲线边的贝塞尔控制点。
函数 intersect_bezier_curve_and_circle 用于寻找贝塞尔曲线和以曲线终点为中心的圆的交点的二分搜索求解器。
函数 str_to_orientation 尝试将字符串解释为方向值。
def autocurve(graph, attribute='curved', default=0): (source)

计算图中每条边的曲率值,以确保在图形绘图中正确显示多条边。

此函数检查图中每条边的多重性,并为它们分配曲率值(介于-1和1之间的数字,对应于逆时针(-1)、直线(0)和顺时针(1)弯曲的边)。分配的值要么存储在边属性中,要么作为列表返回,具体取决于attribute参数的值。

参数
graph将在其上运行计算的图
attribute要保存曲率值的边属性的名称。默认值为curved,这是默认图形绘图器检查的边属性名称,以决定是否在图上弯曲边。如果attributeNone,结果将不会被存储。
default单条边的默认曲率。零表示单条边将是直的。如果你希望单条边也是弯曲的,可以尝试在这里传递0.5或-0.5。
返回
如果attributeNone,则为曲率值的列表,否则为None
def calculate_corner_radii(points, corner_radius): (source)

给定一个点列表和所需的角半径,返回一个包含每个点的建议角半径的列表,确保点的角半径永远不会超过该点与其邻居之间最小距离的一半。

def euclidean_distance(x1, y1, x2, y2): (source)

计算点 (x1,y1) 和 (x2,y2) 之间的欧几里得距离。

def evaluate_cubic_bezier(x0, y0, x1, y1, x2, y2, x3, y3, t): (source)

在t处评估从点(x0,y0)到(x3,y3)通过控制点(x1,y1)和(x2,y2)的贝塞尔曲线。t通常在[0; 1]范围内,使得0返回(x0, y0),1返回(x3, y3)。

def get_bezier_control_points_for_curved_edge(x1, y1, x2, y2, curvature): (source)

辅助函数,用于计算从 (x1, y1) 到 (x2, y2) 的曲线边的贝塞尔控制点。

def intersect_bezier_curve_and_circle(x0, y0, x1, y1, x2, y2, x3, y3, radius, max_iter=10): (source)

用于寻找贝塞尔曲线与以曲线终点为中心的圆的交点的二分搜索求解器。

返回交点的 x, y 坐标。

def str_to_orientation(value, reversed_horizontal=False, reversed_vertical=False): (source)

尝试将字符串解释为方向值。

以下基本值被理解:``left-right``, ``bottom-top``, ``right-left``, ``top-bottom``。可能的别名有:

  • ``horizontal``, ``horiz``, ``h`` and ``lr`` for ``left-right``
  • ``vertical``, ``vert``, ``v`` and ``tb`` for top-bottom.
  • ``lr`` for ``left-right``.
  • ``rl`` for ``right-left``.

``reversed_horizontal`` 将 ``horizontal``、``horiz`` 和 ``h`` 的含义反转为 ``rl``(而不是 ``lr``);同样地,``reversed_vertical`` 将 ``vertical``、``vert`` 和 ``v`` 的含义反转为 ``bt``(而不是 ``tb``)。

返回 ``lr``、``rl``、``tb`` 或 ``bt`` 中的一个,如果字符串无法解释为方向,则抛出 ``ValueError``。