from typing import Tuple import core from dict.model_config import _global_model_configs class Node: def __init__(self, original_point: Tuple[float, float], node_type, div_index): self.model_config = _global_model_configs[node_type] self.original_point = original_point original_point = original_point[0], -original_point[1] self.div_index = div_index self.agg_point = self.get_agg(original_point) self.div_point = self.get_div(original_point) # 对坐标进行图层聚合偏移、旋转、缩放调整处理 def get_agg(self, point): shift_x = self.model_config.agg_shift[0] shift_y = self.model_config.agg_shift[1] route = self.model_config.agg_route scale = self.model_config.agg_scale point_ = core.rotate_point_around_another(point, (0, 0), route) point_ = core.scale_point(point_[0], point_[1], scale) point_ = point_[0] + shift_x, point_[1] + shift_y return point_ # 对坐标进行图层分离偏移、旋转、缩放调整处理 def get_div(self, point): shift_x = self.model_config.div_shift[self.div_index][0] shift_y = self.model_config.div_shift[self.div_index][1] route = self.model_config.div_route[self.div_index] scale = self.model_config.div_scale[self.div_index] point_ = core.rotate_point_around_another(point, (0, 0), route) point_ = core.scale_point(point_[0], point_[1], scale) point_ = point_[0] + shift_x, point_[1] + shift_y return point_ class Node2D(Node): def __init__(self, original_point: Tuple[float, float], div_index): super().__init__(original_point, '2d', div_index) class Node3D(Node): def __init__(self, original_point: Tuple[float, float], div_index): super().__init__(original_point, '3d', div_index) # class Route: # def __init__(self,div_route,agg_route): # self.div_route =div_route # self.agg_route = agg_route