nurbspy.jax.nurbs_surface_revolution module#
Exact rational revolution patches, with explicit topology for traced angles.
- class nurbspy.jax.nurbs_surface_revolution.NurbsSurfaceRevolution(generatrix, axis_point, axis_direction, angle_start, angle_end, *, n_arcs=None)[source]#
Bases:
objectRevolve a 3D curve about an axis; u follows the arc, v the generatrix.
Angles are radians. As in NumPy, an end angle below the start wraps once through 2*pi. Eager calls infer one to four quadratic arcs automatically. When angles are traced, pass a static keyword
n_arcs(1 to 4) so the control-net shape is fixed. Each arc must span at most pi/2. Within that topology, angles, curve geometry and axis geometry are differentiable.Methods
intersect_lines(P0, T0, P2, T2)Intersect two nonparallel coplanar tangent lines; retain the NumPy helper API.
Build exact arc rows without normalizing zero-radius vectors on the axis.
project_point_to_line(S, T, P)Return the orthogonal projection onto the line S+t*T.
- static intersect_lines(P0, T0, P2, T2)[source]#
Intersect two nonparallel coplanar tangent lines; retain the NumPy helper API.