cosplay: Touhou/Houjuu Nue #4

Open
aniva wants to merge 189 commits from touhou/houjuu-nue into main
1 changed files with 51 additions and 23 deletions
Showing only changes of commit d668fb1966 - Show all commits

View File

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