def derivatives_data_array(self, us, vs): surf_vertices = self.evaluate_array(us, vs) derivatives = self.derivatives_list(us, vs) # derivatives[i][j][k] = derivative w.r.t U j times, w.r.t. V k times, at i'th pair of (u, v) du = derivatives[:, 1, 0] dv = derivatives[:, 0, 1] return SurfaceDerivativesData(surf_vertices, du, dv)
def derivatives_data_array(self, us, vs): numerator, denominator = self.fraction(0, 0, us, vs) surface = numerator / denominator numerator_u, denominator_u = self.fraction(1, 0, us, vs) numerator_v, denominator_v = self.fraction(0, 1, us, vs) surface_u = (numerator_u - surface * denominator_u) / denominator surface_v = (numerator_v - surface * denominator_v) / denominator return SurfaceDerivativesData(surface, surface_u, surface_v)