matplotlib.bezier#

Bezier 경로 조작과 관련된 일부 유틸리티 기능을 제공하는 모듈입니다.

클래스 matplotlib.bezier. BezierSegment ( control_points ) [소스] #

베이스:object

d차원 베지어 세그먼트.

매개변수 :
control_points (N, d) 배열

N 제어점 의 위치 .

axis_aligned_extrema ( ) [소스] #

곡선 내부 극단의 치수와 위치를 반환합니다.

극한값은 부분 도함수 중 하나가 0인 곡선을 따라 있는 지점입니다.

반환 :
int의 희미한 배열

색인\(i\)각 내부 극한값에서 0인 편도함수.

float의 dzeros 배열

딤스와 같은 크기. 그만큼\(t\)그렇게\(d/dx_i B(t) = 0\)

속성 control_points #

곡선의 제어점.

재산 정도 #

다항식의 차수. 제어점 수가 하나 적습니다.

속성 차원 #

곡선의 치수입니다.

point_at_t ( t ) [출처] #

단일 지점에서 곡선을 평가하여 d float의 튜플을 반환합니다.

속성 polynomial_coefficients #

베지어 곡선의 다항식 계수.

경고

의 반대 규칙을 따릅니다 numpy.polyval.

반환 :
(n+1, d) 배열

다항식으로 확장한 후의 계수, 여기서\(n\) 는 베지어 곡선의 정도이고\(d\)그것의 차원. 이들은 숫자(\(C_j\)) 곡선을 쓸 수 있도록\(\sum_{j=0}^n C_j t^j\).

메모

계수는 다음과 같이 계산됩니다.

\[{n \choose j} \sum_{i=0}^j (-1)^{i+j} {j \choose i} P_i\]

어디\(P_i\)곡선의 제어점입니다.

예외 matplotlib.bezier. NonIntersectingPathException [출처] #

베이스:ValueError

matplotlib.bezier. check_if_parallel ( dx1 , dy1 , dx2 , dy2 , 공차 = 1e-05 ) [출처] #

두 선이 평행한지 확인합니다.

매개변수 :
dx1, dy1, dx2, dy2 플로트

두 선의 그래디언트 dy / dx .

공차 플로트

선이 평행한 것으로 간주되는 라디안 단위의 각도 공차입니다.

반환 :
is_parallel
  • 두 선이 같은 방향으로 평행한 경우 1입니다.

  • 두 선이 반대 방향으로 평행한 경우 -1입니다.

  • 그렇지 않으면 거짓입니다.

matplotlib.bezier. find_bezier_t_intersecting_with_closedpath ( bezier_point_at_t , inside_closedpath , t0 = 0.0 , t1 = 1.0 , tolerance = 0.01 ) [출처] #

닫힌 경로가 있는 베지어 곡선의 교차점을 찾습니다.

교차점 t 는 t0 <= t <= t1 이 되도록 두 개의 매개변수 t0 , t1 에 의해 근사화됩니다 .

검색은 t0t1 에서 시작 하고 간단한 이등분 알고리즘을 사용하므로 끝점 중 하나는 경로 내부에 있어야 하고 다른 하나는 그렇지 않아야 합니다. t0t1 에 의해 매개변수화된 점의 거리가 주어진 허용 오차 보다 작아지면 검색이 중지됩니다 .

매개변수 :
bezier_point_at_t 호출 가능

매개변수 t 에서 베지어의 x, y 좌표를 반환하는 함수 . 서명이 있어야 합니다.

bezier_point_at_t(t: float) -> tuple[float, float]
inside_closedpath 호출 가능

주어진 점(x, y)이 닫힌 경로 안에 있으면 True를 반환하는 함수입니다. 서명이 있어야 합니다.

inside_closedpath(point: tuple[float, float]) -> bool
t0, t1 플로트

검색을 위한 시작 매개변수입니다.

공차 플로트

최종 지점 사이의 최대 허용 거리.

반환 :
t0, t1 플로트

베지어 경로 매개변수.

matplotlib.bezier. find_control_points ( c1x , c1y , mmx , mmy , c2x , c2y ) [출처] #

파라메트릭 값 0, 0.5 및 1에서 ( c1x , c1y ), ( mmx , mmy ) 및 ( c2x , c2y ) 를 통과하는 베지어 곡선의 제어점을 찾습니다 .

matplotlib.bezier. get_cos_sin ( x0 , y0 , x1 , y1 ) [소스] #
matplotlib.bezier. get_intersection ( cx1 , cy1 , cos_t1 , sin_t1 , cx2 , cy2 , cos_t2 , sin_t2 ) [출처] #

각도 t1 에서 ( cx1 , cy1 )을 통과하는 선과 각도 t2 에서 ( cx2 , cy2 )를 통과하는 선 사이의 교차점을 반환합니다 .

matplotlib.bezier. get_normal_points ( cx , cy , cos_t , sin_t , 길이 ) [출처] #

( cx , cy ) 를 지나고 각이 t 인 직선에 대해 길이 의 거리에서 수직선을 따라 위치한 두 점의 위치를 ​​반환합니다 .

matplotlib.bezier. get_parallels ( 베지어2 , 너비 ) [소스] #

2차 베지어 제어점 bezier2 가 주어지면 너비 로 구분된 2차 베지어 선과 대략 평행한 2차 베지어 선의 제어점을 반환합니다 .

matplotlib.bezier. inside_circle ( cx , cy , r ) [출처] #

점이 중심( cx , cy )과 반지름이 r 인 원 안에 있는지 확인하는 함수를 반환합니다 .

반환된 함수에는 서명이 있습니다.

f(xy: tuple[float, float]) -> bool
matplotlib.bezier. make_wedged_bezier2 ( 베지어2 , 너비 , w1 = 1.0 , wm = 0.5 , w2 = 0.0 ) [출처] #

get_parallels와 유사하므로 width 로 구분된 주어진 선과 거의 평행한 너비를 갖는 두 개의 2차 베지어 선의 제어점을 반환 합니다 .

matplotlib.bezier. split_bezier_intersecting_with_closedpath ( 베지어 , inside_closedpath , 공차 = 0.01 ) [출처] #

닫힌 경로가 있는 교차점에서 베지어 곡선을 두 개로 분할합니다.

매개변수 :
베지어 (N, 2) 배열형

베지어 세그먼트의 제어점. 참조하십시오 BezierSegment.

inside_closedpath 호출 가능

주어진 점(x, y)이 닫힌 경로 안에 있으면 True를 반환하는 함수입니다. 또한 참조하십시오 find_bezier_t_intersecting_with_closedpath.

공차 플로트

교차에 대한 공차입니다. 또한 참조하십시오 find_bezier_t_intersecting_with_closedpath.

반환 :
왼쪽 오른쪽

두 개의 베지어 세그먼트에 대한 제어점 목록입니다.

matplotlib.bezier. split_de_casteljau ( 베타 , t ) [출처] #

제어점 베타 로 정의된 베지어 세그먼트를 t 에서 분할된 두 개의 개별 세그먼트로 분할하고 해당 제어점을 반환합니다.

matplotlib.bezier. split_path_inout ( 경로 , 내부 , 공차 = 0.01 , reorder_inout = False ) [소스] #

False가 되는 지점에서 경로를 두 개의 세그먼트로 나눕니다 .inside(x, y)