nurbspy.nurbs_surface_revolution module#

class nurbspy.nurbs_surface_revolution.NurbsSurfaceRevolution(generatrix, axis_point, axis_direction, angle_start, angle_end)[source]#

Bases: object

Create the NURBS surface obtained by revolving a generatrix NURBS curve C(u) about an axis

Parameters:
generatrixNURBS curve object

See NurbsSurface class documentation

axis_pointndaray of with shape (3,)

Point that together with a direction defines the axis of rotation

axis_directionndarrays with shape (3,)

Direction that together with a point defines the axis of rotation

theta_startscalar

Start angle, measured with respect to the generatrix

theta_endscalar

End angle, measured with respect to the generatrix

Methods

intersect_lines(P0, T0, P2, T2)

Compute the point of intersection between two lines in 2D or 3D

make_nurbs_surface()

Make a NURBS surface representation of the revolution surface

project_point_to_line(S, T, P)

Compute the projection of a point P into the line given by S + u*T

References

The NURBS book. Chapter 8.5 L. Piegl and W. Tiller Springer, second edition

intersect_lines(P0, T0, P2, T2)[source]#

Compute the point of intersection between two lines in 2D or 3D

make_nurbs_surface()[source]#

Make a NURBS surface representation of the revolution surface

project_point_to_line(S, T, P)[source]#

Compute the projection of a point P into the line given by S + u*T