class RelativeVector(PathSegment): def __init__(self, x, y): self.point = Point(x,y) def specification(self): return 'l %s ' % self.point.format() def scale(self,scale): self.point= self.point.scale(scale) return self
def transform(self, point): p = point s = sin(radians(-self.angle)) c = cos(radians(-self.angle)) point1 = Point(c * p.x + s * p.y, (c * p.y - s * p.x)) result = point1 return result
def horizontal_line(start, length, color='black', stroke_width=1, linecap='butt'): return Line(start, start + Point(length, 0), color=color, stroke_width=stroke_width, linecap=linecap)
def __init__(self, width, height, stroke_width=1, stroke='black', stroke_dasharray=None, rounded=False, **attributes): SimpleItem.__init__(self, Point(0, 0)) self.width = width self.height = height self.stroke_width = stroke_width self.stroke_dasharray = stroke_dasharray self.stroke = stroke self.rounded = rounded self._attributes = attributes
def rotate(self, theta, origin=Point(0, 0)): self.transformations.append(Rotation(theta, origin)) return self
def move_center_to(self, point): self.move_to(point - Point(self.radius, self.radius)) return self
def center(self): return self.top_left + Point(self.radius, self.radius)
def center(self): return self.top_left + Point(self.width, self.height).scale(0.5)
def set_center(self, x, y): self.move_to(Point(x - 0.5 * self.width, y - 0.5 * self.height)) return self
def __init__(self, angle, origin=Point(0, 0)): self.angle = angle self.origin = origin
def __init__(self, x, y): self.point = Point(x,y)