def rotate(self, angle=0): """ Rotate this face by some angle, given in degrees. """ theta = deg2rad(angle) t = transform.Transformation(math.cos(theta), -math.sin(theta), 0, math.sin(theta), math.cos(theta), 0) self.transform = self.transform.multiply(t)
def obj_repr(self, render_params): """ Returns complete representation of the point as a sphere. TESTS:: sage: P = point3d((1,2,3),size=3,color='purple') sage: P.obj_repr(P.default_render_params())[0][0:2] ['g obj_1', 'usemtl texture...'] """ T = render_params.transform if T is None: import transform T = transform.Transformation() render_params.push_transform(~T) S = shapes.Sphere(self.size / 200.0).translate(T(self.loc)) cmds = S.obj_repr(render_params) render_params.pop_transform() return cmds
def obj_repr(self, render_params): """ Returns complete representation of the line as an object. TESTS:: sage: from sage.plot.plot3d.shapes2 import Line sage: L = Line([(cos(i),sin(i),i^2) for i in srange(0,10,.01)],color='red') sage: L.obj_repr(L.default_render_params())[0][0][0][2][:3] ['v 0.99995 0.00999983 0.0001', 'v 1.00007 0.0102504 -0.0248984', 'v 1.02376 0.010195 -0.00750607'] """ T = render_params.transform if T is None: import transform T = transform.Transformation() render_params.push_transform(~T) L = line3d([T(P) for P in self.points], radius=self.thickness / 200.0, arrow_head=self.arrow_head, texture=self.texture) cmds = L.obj_repr(render_params) render_params.pop_transform() return cmds
def scale(self, factor=1): """ Scale this face by a factor. """ t = transform.Transformation(factor, 0, 0, 0, factor, 0) self.transform = self.transform.multiply(t)
def translate(self, xdistance=0, ydistance=0): """ Move this face by some distance. """ t = transform.Transformation(1, 0, xdistance, 0, 1, ydistance) self.transform = self.transform.multiply(t)
def __init__(self, edgeA, edgeB, edgeC): mesh.Triangle.__init__(self, edgeA, edgeB, edgeC) self.transform = transform.Transformation(1 / average_edge_length, 0, 0, 0, -1 / average_edge_length, 0)