Released under MIT License Developed by Onur Rauf Bingol (c) 2016-2017 """ from nurbs import Curve as ns from nurbs import utilities as utils from matplotlib import pyplot as plt # Create a NURBS curve instance curve = ns.Curve() # Set up the NURBS curve curve.read_ctrlpts("data\CP_Curve3.txt") curve.degree = 3 # Auto-generate the knot vector curve.knotvector = utils.knotvector_autogen(curve.degree, len(curve.ctrlpts)) # Evaulate curve curve.evaluate() # Arrange curve points for plotting curvepts_x = [] curvepts_y = [] for pt in curve.curvepts: curvepts_x.append(pt[0]) curvepts_y.append(pt[1]) # Arrange tangents for plotting X = [] Y = [] U = []
Developed by Onur Rauf Bingol (c) 2016-2017 """ from nurbs import Surface as ns from nurbs import utilities as utils from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D # Create a NURBS surface instance surf = ns.Surface() # Set up the NURBS surface surf.read_ctrlpts("data\CP_Surface2.txt") surf.degree_u = 3 surf.degree_v = 3 surf.knotvector_u = utils.knotvector_autogen(surf.degree_u, 6) surf.knotvector_v = utils.knotvector_autogen(surf.degree_v, 6) # Evaluate surface surf.evaluate_rational() # Calculate 1st order surface derivative at the given u and v u = 0.2 v = 0.9 surftan = surf.tangent(u, v) print("* Surface point at u = %.2f and v = %.2f is (%.2f, %.2f, %.2f)" % (u, v, surftan[0][0], surftan[0][1], surftan[0][2])) print("* First derivative w.r.t. u is (%.2f, %.2f, %.2f)" % (surftan[1][0], surftan[1][1], surftan[1][2])) print("* First derivative w.r.t. v is (%.2f, %.2f, %.2f)\n" % (surftan[2][0], surftan[2][1], surftan[2][2])) # Calculate normal at the given u and v norm = surf.normal(u, v) print("* Normal at u = %.2f and v = %.2f is [%.1f, %.1f, %.1f]\n" % (u, v, norm[0], norm[1], norm[2]))