import math import core from drawer.BaseDrawer import VentGraphDrawer class WindBridgeDrawer(VentGraphDrawer): def initialize_data(self): self.obj.color = (255, 255, 255) def draw_obj(self, center, route): width = self.obj.width * 1.7 line_top_middle = center[0], center[1] + width / 2 line_top_left = line_top_middle[0] - width * 1.25 / 2, line_top_middle[1] line_top_left_2 = line_top_left[0] - math.cos(math.pi / 6) * width * 0.625, line_top_left[1] + math.sin( math.pi / 6) * width * 0.625 line_top_right = core.symmetric_point(line_top_left, line_top_middle) line_top_right_2 = core.symmetric_point(line_top_left_2, (line_top_middle[0], line_top_middle[1] + math.sin( math.pi / 6) * width * 0.625)) line_bottom_middle = center[0], center[1] - width / 2 line_bottom_left = line_bottom_middle[0] - width * 1.25 / 2, line_bottom_middle[1] line_bottom_left_2 = line_bottom_left[0] - math.cos(math.pi / 6) * width * 0.625, line_bottom_left[ 1] - math.sin( math.pi / 6) * width * 0.625 line_bottom_right = core.symmetric_point(line_bottom_left, line_bottom_middle) line_bottom_right_2 = core.symmetric_point(line_bottom_left_2, (line_bottom_middle[0], line_bottom_middle[1] - math.sin( math.pi / 6) * width * 0.625)) line_top_left = core.rotate_point_around_another(line_top_left, center, route) line_top_left_2 = core.rotate_point_around_another(line_top_left_2, center, route) line_top_right = core.rotate_point_around_another(line_top_right, center, route) line_top_right_2 = core.rotate_point_around_another(line_top_right_2, center, route) line_bottom_left = core.rotate_point_around_another(line_bottom_left, center, route) line_bottom_left_2 = core.rotate_point_around_another(line_bottom_left_2, center, route) line_bottom_right = core.rotate_point_around_another(line_bottom_right, center, route) line_bottom_right_2 = core.rotate_point_around_another(line_bottom_right_2, center, route) line = self.msp.add_line(line_top_left, line_top_left_2, dxfattribs={"layer": f"图层{self.obj.layer_id}"}) line.rgb = self.obj.color line = self.msp.add_line(line_top_right, line_top_left, dxfattribs={"layer": f"图层{self.obj.layer_id}"}) line.rgb = self.obj.color line = self.msp.add_line(line_top_right, line_top_right_2, dxfattribs={"layer": f"图层{self.obj.layer_id}"}) line.rgb = self.obj.color line = self.msp.add_line(line_bottom_left, line_bottom_right, dxfattribs={"layer": f"图层{self.obj.layer_id}"}) line.rgb = self.obj.color line = self.msp.add_line(line_bottom_right, line_bottom_right_2, dxfattribs={"layer": f"图层{self.obj.layer_id}"}) line.rgb = self.obj.color line = self.msp.add_line(line_bottom_left, line_bottom_left_2, dxfattribs={"layer": f"图层{self.obj.layer_id}"}) line.rgb = self.obj.color