graphics.bezier_curve ===================== .. py:module:: graphics.bezier_curve Classes ------- .. autoapisummary:: graphics.bezier_curve.BezierCurve Module Contents --------------- .. py:class:: BezierCurve(list_of_points: list[tuple[float, float]]) Bezier curve is a weighted sum of a set of control points. Generate Bezier curves from a given set of control points. This implementation works only for 2d coordinates in the xy plane. .. py:method:: basis_function(t: float) -> list[float] The basis function determines the weight of each control point at time t. t: time value between 0 and 1 inclusive at which to evaluate the basis of the curve. returns the x, y values of basis function at time t >>> curve = BezierCurve([(1,1), (1,2)]) >>> [float(x) for x in curve.basis_function(0)] [1.0, 0.0] >>> [float(x) for x in curve.basis_function(1)] [0.0, 1.0] .. py:method:: bezier_curve_function(t: float) -> tuple[float, float] The function to produce the values of the Bezier curve at time t. t: the value of time t at which to evaluate the Bezier function Returns the x, y coordinates of the Bezier curve at time t. The first point in the curve is when t = 0. The last point in the curve is when t = 1. >>> curve = BezierCurve([(1,1), (1,2)]) >>> tuple(float(x) for x in curve.bezier_curve_function(0)) (1.0, 1.0) >>> tuple(float(x) for x in curve.bezier_curve_function(1)) (1.0, 2.0) .. py:method:: plot_curve(step_size: float = 0.01) Plots the Bezier curve using matplotlib plotting capabilities. step_size: defines the step(s) at which to evaluate the Bezier curve. The smaller the step size, the finer the curve produced. .. py:attribute:: degree .. py:attribute:: list_of_points