import math import core from drawer.BaseDrawer import VentGraphDrawer class FanMainDrawer(VentGraphDrawer): def initialize_data(self): pass def draw_obj(self, center, route): rad = 0.5 * self.obj.width a = math.pi / 8 b = 10 / 3 * rad self.msp.add_circle(center=center, radius=rad, dxfattribs={"layer": f"图层{self.obj.layer_id}"}) A = (rad * math.cos(a) + center[0], rad * math.sin(a) + center[1]) C = (rad * math.cos(a) + center[0], -rad * math.sin(a) + center[1]) B = ((b / 2) / math.tan(a) + center[0], (b / 2) + center[1]) D = ((b / 2) / math.tan(a) + center[0], -(b / 2) + center[1]) A = core.rotate_point_around_another(A, center, route) B = core.rotate_point_around_another(B, center, route) C = core.rotate_point_around_another(C, center, route) D = core.rotate_point_around_another(D, center, route) self.msp.add_line(A, B, dxfattribs={"layer": f"图层{self.obj.layer_id}"}) self.msp.add_line(B, D, dxfattribs={"layer": f"图层{self.obj.layer_id}"}) self.msp.add_line(C, D, dxfattribs={"layer": f"图层{self.obj.layer_id}"})