47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
from typing import Callable
|
|
|
|
import numpy as np
|
|
from matplotlib.path import Path
|
|
|
|
from ._typing import *
|
|
|
|
class NonIntersectingPathException(ValueError): ...
|
|
|
|
def get_intersection(cx1, cy1, cos_t1, sin_t1, cx2, cy2, cos_t2, sin_t2) -> tuple[float, float]: ...
|
|
def get_normal_points(cx, cy, cos_t, sin_t, length) -> tuple[float, float, float, float]: ...
|
|
def split_de_casteljau(beta, t) -> float: ...
|
|
def find_bezier_t_intersecting_with_closedpath(
|
|
bezier_point_at_t: Callable,
|
|
inside_closedpath: Callable,
|
|
t0: float = ...,
|
|
t1: float = ...,
|
|
tolerance: float = ...,
|
|
) -> tuple[float, float]: ...
|
|
|
|
class BezierSegment:
|
|
def __init__(self, control_points) -> None: ...
|
|
def __call__(self, t: ArrayLike) -> tuple: ...
|
|
def point_at_t(self, t) -> tuple[float]: ...
|
|
@property
|
|
def control_points(self) -> np.ndarray: ...
|
|
@property
|
|
def dimension(self) -> int: ...
|
|
@property
|
|
def degree(self) -> int: ...
|
|
@property
|
|
def polynomial_coefficients(self): ...
|
|
def axis_aligned_extrema(self) -> tuple: ...
|
|
|
|
def split_bezier_intersecting_with_closedpath(
|
|
bezier, inside_closedpath: Callable, tolerance: float = ...
|
|
) -> tuple[list, list]: ...
|
|
def split_path_inout(path, inside, tolerance=..., reorder_inout=...) -> tuple[Path, Path]: ...
|
|
def inside_circle(cx, cy, r) -> Callable: ...
|
|
def get_cos_sin(x0, y0, x1, y1) -> tuple[float, float]: ...
|
|
def check_if_parallel(dx1: float, dy1: float, dx2: float, dy2: float, tolerance: float = ...) -> bool: ...
|
|
def get_parallels(bezier2, width) -> tuple[list[tuple[float, float]], list[tuple[float, float]]]: ...
|
|
def find_control_points(c1x, c1y, mmx, mmy, c2x, c2y) -> list[tuple[float, float]]: ...
|
|
def make_wedged_bezier2(
|
|
bezier2, width, w1=..., wm=..., w2=...
|
|
) -> tuple[list[tuple[float, float]], list[tuple[float, float]]]: ...
|