fix: Splitting line for each wing

This commit is contained in:
Leni Aniva 2024-07-17 01:19:17 -07:00
parent 53b3a2bd34
commit d668fb1966
Signed by: aniva
GPG Key ID: 4D9B1C8D10EA4C50
1 changed files with 51 additions and 23 deletions

View File

@ -399,31 +399,14 @@ class WingProfile(Model):
return wrist_x, wrist_y return wrist_x, wrist_y
def _mask_elbow(self) -> list[Tuple[float, float]]: def _mask_elbow(self) -> list[Tuple[float, float]]:
""" """
Polygon shape to mask out parts above the elbow Polygon shape to mask out parts above the elbow
""" """
l = 200
return [
(0, -l),
(self.elbow_x, -l),
(self.elbow_x, self.elbow_y),
(self.elbow_top_x, self.elbow_top_y),
(self.elbow_top_x, l),
(0, l)
]
def _mask_wrist(self) -> list[Tuple[float, float]]: def _mask_wrist(self) -> list[Tuple[float, float]]:
l = 200 """
return [ Polygon shape to mask wrist
(0, -l), """
(self.wrist_x, -l),
(self.wrist_x, self.wrist_y),
(self.wrist_top_x, self.wrist_top_y),
(self.wrist_top_x, l),
(0, l),
]
@target(name="profile-s1", kind=TargetKind.DXF) @target(name="profile-s1", kind=TargetKind.DXF)
@ -748,10 +731,10 @@ class WingR(WingProfile):
""" """
elbow_height: float = 111.0 elbow_height: float = 111.0
elbow_x: float = 363.0 elbow_x: float = 285.0
elbow_y: float = 44.0 elbow_y: float = 5.0
# Tilt of elbow w.r.t. shoulder # Tilt of elbow w.r.t. shoulder
elbow_angle: float = 30.0 elbow_angle: float = 25.0
wrist_height: float = 60.0 wrist_height: float = 60.0
# Bottom point of the wrist # Bottom point of the wrist
@ -841,6 +824,29 @@ class WingR(WingProfile):
) )
return result return result
def _mask_elbow(self) -> list[Tuple[float, float]]:
l = 200
return [
(0, -l),
(self.elbow_x, -l),
(self.elbow_x, self.elbow_y),
(self.elbow_top_x, self.elbow_top_y),
(self.elbow_top_x, l),
(0, l)
]
def _mask_wrist(self) -> list[Tuple[float, float]]:
l = 200
return [
(0, -l),
(self.wrist_x, -l),
(self.wrist_x, self.wrist_y),
(self.wrist_top_x, self.wrist_top_y),
#(self.wrist_top_x, self.wrist_top_y),
(0, self.wrist_top_y),
]
@dataclass(kw_only=True) @dataclass(kw_only=True)
class WingL(WingProfile): class WingL(WingProfile):
@ -949,3 +955,25 @@ class WingL(WingProfile):
for line in arrow_beziers: for line in arrow_beziers:
result = result.bezier([self.arrow_to_abs(x, y) for x,y in line]) result = result.bezier([self.arrow_to_abs(x, y) for x,y in line])
return result.assemble() return result.assemble()
def _mask_elbow(self) -> list[Tuple[float, float]]:
l = 200
return [
(0, -l),
(self.elbow_x, -l),
(self.elbow_x, self.elbow_y),
(self.elbow_top_x, self.elbow_top_y),
(self.elbow_top_x, l),
(0, l)
]
def _mask_wrist(self) -> list[Tuple[float, float]]:
l = 200
return [
(0, -l),
(self.elbow_x, self.wrist_y),
(self.wrist_x, self.wrist_y),
(self.wrist_top_x, self.wrist_top_y),
(self.elbow_x, self.elbow_top_y + 50),
(0, l),
]