matplotlib.bezier
#
ベジエ パス操作に関するいくつかのユーティリティ関数を提供するモジュール。
- クラス matplotlib.bezier。BezierSegment ( control_points ) [ソース] #
拠点:
object
d 次元のベジエ セグメント。
- パラメータ:
- control_points (N, d) 配列
N 個のコントロール ポイントの位置。
- axis_aligned_extrema ( ) [ソース] #
曲線の内部極値の次元と位置を返します。
極値は、その偏導関数の 1 つがゼロである曲線に沿ったポイントです。
- 戻り値:
- int の配列を暗くします
索引\(i\)各内部極値でゼロである偏導関数の。
- float のdzeros配列
ディムと同じサイズです。の\(t\)そのような\(d/dx_i B(t) = 0\)
- プロパティ control_points #
曲線の制御点。
- 特性 度数_
多項式の次数。制御点の数を 1 つ減らします。
- プロパティ 次元#
曲線の寸法。
- プロパティ 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 ) [ソース] #
2 つの直線が平行かどうかを確認します。
- パラメータ:
- dx1、dy1、dx2、dy2 float
2 つの線の勾配dy / dx。
- 公差フロート
線が平行と見なされるラジアン単位の角度許容差。
- 戻り値:
- is_parallel
2 つの直線が同じ方向に平行である場合は 1。
2 本の直線が反対方向に平行な場合は -1。
それ以外の場合は偽。
- matplotlib.bezier. find_bezier_t_intersecting_with_closedpath ( bezier_point_at_t , inside_closedpath , t0 = 0.0 , t1 = 1.0 ,許容範囲= 0.01 ) [ソース] #
閉じたパスとベジエ曲線の交点を見つけます。
交点tは、 t0 <= t <= t1となる ように、 2 つのパラメーターt0、t1によって近似されます。
検索はt0とt1から開始され、単純な bisecting アルゴリズムを使用するため、終点の 1 つがパスの内側にある必要があり、もう 1 つはそうではありません。t0とt1によってパラメーター化されたポイントの距離が、指定された許容値よりも小さくなると、検索が停止し ます。
- パラメータ:
- 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_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 , length ) [ソース] #
( cx , cy ) を通り、角度tをもつ直線について、その垂線に沿ってlengthの距離にある 2 つの点の位置を返します。
- matplotlib.bezier. get_parallels ( bezier2 , width ) [ソース] #
2 次ベジエ制御点bezier2を指定すると、 widthで区切られた所定の線にほぼ平行な 2 次ベジエ線の制御点が返されます。
- matplotlib.bezier. inside_circle ( cx , cy , r ) [ソース] #
ポイントが中心 ( cx , cy ) と半径rの円内にあるかどうかをチェックする関数を返します。
返された関数には署名があります。
f(xy: tuple[float, float]) -> bool
- matplotlib.bezier. make_wedged_bezier2 ( bezier2 , width , w1 = 1.0 , wm = 0.5 , w2 = 0.0 ) [source] #
get_parallels と同様に、指定された幅とほぼ平行な幅を持つ 2 つの 2 次ベジェ ラインのコントロール ポイントを、 width で区切って返し ます。
- matplotlib.bezier. split_bezier_intersecting_with_closedpath ( bezier , inside_closedpath , tolerance = 0.01 ) [source] #
閉じたパスとの交点でベジエ曲線を 2 つに分割します。
- パラメータ:
- bezier (N, 2) 配列のようなもの
ベジエ セグメントのコントロール ポイント。を参照してください
BezierSegment
。- inside_closedpath呼び出し可能
指定された点 (x, y) が閉じたパス内にある場合に True を返す関数。も参照してください
find_bezier_t_intersecting_with_closedpath
。- 公差フロート
交差の許容差。も参照してください
find_bezier_t_intersecting_with_closedpath
。
- 戻り値:
- 左右
2 つのベジエ セグメントのコントロール ポイントのリスト。