Finalize Polyline parsing but still arcs precision issue

This commit is contained in:
2024-06-15 01:41:26 +02:00
parent 9b87874e13
commit 4a611a4aa2
7 changed files with 260 additions and 113 deletions

View File

@@ -1,21 +1,24 @@
from networks.geometry.Point2D import Point2D
from math import cos, sin, pi
from math import cos, pi, sin
from typing import List
import numpy as np
from networks.geometry.Point2D import Point2D
class Circle:
def __init__(self, center: Point2D):
self.center = center
self.radius = None
self.points = []
self.points: List[Point2D] = []
self.inner = None
self.outer = None
self.points_thick = []
self.points_thick: List[Point2D] = []
self.spaced_radius = None
self.spaced_points = []
self.spaced_points: List[Point2D] = []
def __repr__(self):
return f"Circle(center: {self.center}, radius: {self.radius}, spaced_radius: {self.spaced_radius}, inner: {self.inner}, outer: {self.outer})"
@@ -43,6 +46,7 @@ class Circle:
continue
else:
break
return self.points
def circle_thick(self, inner: int, outer: int) -> List[Point2D]:
"""Compute discrete value of a 2d-circle with thickness.
@@ -114,16 +118,17 @@ class Circle:
center = self.center
self.spaced_points = [
Point2D(cos(2 * pi / number * i) * radius,
sin(2 * pi / number * i) * radius)
Point2D(round(cos(2 * pi / number * i) * radius),
round(sin(2 * pi / number * i) * radius))
for i in range(0, number + 1)
]
for i in range(len(self.spaced_points)):
self.spaced_points[i] = Point2D(
current_point = Point2D(
self.spaced_points[i].x + center.x,
self.spaced_points[i].y + center.y
).round()
self.spaced_points[i] = current_point
return self.spaced_points
def _x_line(self, x1, x2, y):