Radii in polylines still to big

This commit is contained in:
2024-06-12 21:38:22 +02:00
parent bbdd59ca9b
commit a84a57d901
2 changed files with 10 additions and 3 deletions

View File

@@ -275,8 +275,11 @@ block_list = ["blue_concrete", "red_concrete", "green_concrete",
# p = Polyline((Point2D(-1183, 528), Point2D(-1138, 481),
# Point2D(-1188, 451), Point2D(-1152, 416)))
p = Polyline((Point2D(-1225, 468), Point2D(-1138, 481),
Point2D(-1188, 451), Point2D(-1152, 416)))
# p = Polyline((Point2D(-1225, 468), Point2D(-1138, 481),
# Point2D(-1188, 451), Point2D(-1176, 409), Point2D(-1179, 399)))
p = Polyline((Point2D(-1206, 414), Point2D(-1176, 409),
Point2D(-1188, 451), Point2D(-1138, 481), Point2D(-1225, 500)))
# Point2D(-1156, 378), Point2D(-1220, 359), Point2D(-1265, 290)
# print(p.alpha_radii)
@@ -288,7 +291,7 @@ print(radius)
print(center)
print(p.lengths)
y = 280
y = 160
for i in range(len(p.coordinates)-1):
if p.coordinates[i] != None:

View File

@@ -45,6 +45,8 @@ class Polyline:
def get_radii(self):
for i in range(1, self.length_polyline-1):
print(self.alpha_radii[i] * self.tangente[i],
self.alpha_radii[i], self.tangente[i])
self.radii[i] = round(self.alpha_radii[i] * self.tangente[i])
return self.radii
@@ -79,6 +81,7 @@ class Polyline:
for i in range(start_index + 1, end_index - 1): # Radii for internal segments
alpha_a, alpha_b, current_radius = self._radius_balance(i)
if current_radius < minimum_radius:
minimum_radius, minimum_index = current_radius, i
alpha_low, alpha_high = alpha_a, alpha_b
@@ -106,6 +109,7 @@ class Polyline:
"""
Returns the radius that balances the radii on either end segement i.
"""
alpha_a = min(self.lengths[i-1], (self.lengths[i]*self.tangente[i+1]) /
(self.tangente[i] + self.tangente[i+1]))
alpha_b = min(self.lengths[i+1], self.lengths[i]-alpha_a)