1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 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
|