Radii in polylines still to big
This commit is contained in:
9
main.py
9
main.py
@@ -275,8 +275,11 @@ block_list = ["blue_concrete", "red_concrete", "green_concrete",
|
|||||||
# p = Polyline((Point2D(-1183, 528), Point2D(-1138, 481),
|
# p = Polyline((Point2D(-1183, 528), Point2D(-1138, 481),
|
||||||
# Point2D(-1188, 451), Point2D(-1152, 416)))
|
# Point2D(-1188, 451), Point2D(-1152, 416)))
|
||||||
|
|
||||||
p = Polyline((Point2D(-1225, 468), Point2D(-1138, 481),
|
# p = Polyline((Point2D(-1225, 468), Point2D(-1138, 481),
|
||||||
Point2D(-1188, 451), Point2D(-1152, 416)))
|
# 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)
|
# Point2D(-1156, 378), Point2D(-1220, 359), Point2D(-1265, 290)
|
||||||
# print(p.alpha_radii)
|
# print(p.alpha_radii)
|
||||||
@@ -288,7 +291,7 @@ print(radius)
|
|||||||
print(center)
|
print(center)
|
||||||
print(p.lengths)
|
print(p.lengths)
|
||||||
|
|
||||||
y = 280
|
y = 160
|
||||||
|
|
||||||
for i in range(len(p.coordinates)-1):
|
for i in range(len(p.coordinates)-1):
|
||||||
if p.coordinates[i] != None:
|
if p.coordinates[i] != None:
|
||||||
|
|||||||
@@ -45,6 +45,8 @@ class Polyline:
|
|||||||
|
|
||||||
def get_radii(self):
|
def get_radii(self):
|
||||||
for i in range(1, self.length_polyline-1):
|
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])
|
self.radii[i] = round(self.alpha_radii[i] * self.tangente[i])
|
||||||
return self.radii
|
return self.radii
|
||||||
|
|
||||||
@@ -79,6 +81,7 @@ class Polyline:
|
|||||||
|
|
||||||
for i in range(start_index + 1, end_index - 1): # Radii for internal segments
|
for i in range(start_index + 1, end_index - 1): # Radii for internal segments
|
||||||
alpha_a, alpha_b, current_radius = self._radius_balance(i)
|
alpha_a, alpha_b, current_radius = self._radius_balance(i)
|
||||||
|
|
||||||
if current_radius < minimum_radius:
|
if current_radius < minimum_radius:
|
||||||
minimum_radius, minimum_index = current_radius, i
|
minimum_radius, minimum_index = current_radius, i
|
||||||
alpha_low, alpha_high = alpha_a, alpha_b
|
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.
|
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]) /
|
alpha_a = min(self.lengths[i-1], (self.lengths[i]*self.tangente[i+1]) /
|
||||||
(self.tangente[i] + self.tangente[i+1]))
|
(self.tangente[i] + self.tangente[i+1]))
|
||||||
alpha_b = min(self.lengths[i+1], self.lengths[i]-alpha_a)
|
alpha_b = min(self.lengths[i+1], self.lengths[i]-alpha_a)
|
||||||
|
|||||||
Reference in New Issue
Block a user