Skip to content

Commit e3ebcc2

Browse files
fix(rendering): region rotation snapping to 90 degrees removed
1 parent 80b67b0 commit e3ebcc2

File tree

2 files changed

+5
-15
lines changed

2 files changed

+5
-15
lines changed

system/lib/math/polygon.py

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,11 @@ def is_clockwise(polygon: Polygon) -> bool:
2525
def compare_polygons(
2626
polygon1: Polygon,
2727
polygon2: Polygon,
28-
round_to_nearest: bool = False,
2928
) -> tuple[int, bool]:
3029
"""Calculates rotation and if polygon is mirrored.
3130
3231
:param polygon1: shape polygon
3332
:param polygon2: sheet polygon
34-
:param round_to_nearest: should round to a multiple of 90
3533
:return: rotation degrees, is polygon mirrored
3634
"""
3735

@@ -45,18 +43,10 @@ def compare_polygons(
4543
du = polygon2[1].x - polygon2[0].x
4644
dv = polygon2[1].y - polygon2[0].y
4745

48-
angle_xy = degrees(atan2(dy, dx)) % 360
49-
angle_uv = degrees(atan2(dv, du)) % 360
46+
angle_xy = degrees(atan2(dy, dx))
47+
angle_uv = degrees(atan2(dv, du))
5048

51-
angle = angle_xy - angle_uv
52-
53-
if mirroring:
54-
angle -= 180
55-
56-
angle = (angle + 360) % 360
57-
58-
if round_to_nearest:
59-
angle = round(angle / 90) * 90
49+
angle = (angle_xy - angle_uv) % 360
6050

6151
return int(angle), mirroring
6252

system/lib/objects/shape/region.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def render(
6161
width, height = max(int(rect.width), 1), max(int(rect.height), 1)
6262

6363
self.rotation, self.is_mirrored = compare_polygons(
64-
transformed_points, self._uv_points, True
64+
transformed_points, self._uv_points
6565
)
6666

6767
rendered_region = self.get_image()
@@ -72,9 +72,9 @@ def render(
7272
rendered_region.mode, width, height, transformed_points, fill_color
7373
)
7474

75-
rendered_region = rendered_region.rotate(-self.rotation, expand=True)
7675
if self.is_mirrored:
7776
rendered_region = rendered_region.transpose(Image.Transpose.FLIP_LEFT_RIGHT)
77+
rendered_region = rendered_region.rotate(-self.rotation, expand=True)
7878

7979
if use_original_size:
8080
return rendered_region

0 commit comments

Comments
 (0)