From 6564b5513a01b5e48e28da078920ff67eac762c4 Mon Sep 17 00:00:00 2001 From: Xeon0X Date: Sat, 15 Jun 2024 21:48:20 +0200 Subject: [PATCH] Truly fix length error (probably) --- main.py | 7 +++++-- networks/geometry/Polyline.py | 5 ++++- networks/roads_2/Roads.py | 2 +- output_image.png | Bin 3419 -> 2674 bytes 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/main.py b/main.py index 2d4197f..85e7ef2 100644 --- a/main.py +++ b/main.py @@ -306,13 +306,16 @@ random_points = [Point2D(random.randint(min_val, max_val), random.randint( # random_points = [Point2D(-40, -56), Point2D(-94, 92), Point2D(19, -47), Point2D( # 100, 59), Point2D(-85, -73), Point2D(-33, -9), Point2D(57, -25), Point2D(51, -34)] -random_points = random_points[0].optimized_path(random_points) +# random_points = random_points[0].optimized_path(random_points) -print(random_points) +# print(random_points) # random_points = [Point2D(94, 71), Point2D(-12, 54), Point2D(-28, 10), Point2D( # 0, -33), Point2D(80, -50), Point2D(73, -89), Point2D(-86, -3), Point2D(-82, 92)] +random_points = [Point2D(-59, -21), Point2D(-43, -19), Point2D(-61, 19), Point2D( + 45, 19), Point2D(80, -4), Point2D(99, 2), Point2D(47, 63), Point2D(100, -91)] + p = Polyline(random_points) diff --git a/networks/geometry/Polyline.py b/networks/geometry/Polyline.py index ea801de..e495466 100644 --- a/networks/geometry/Polyline.py +++ b/networks/geometry/Polyline.py @@ -61,11 +61,14 @@ class Polyline: self.get_arcs_intersections() self.get_arcs() self.get_segments() + print("\nlekj\n", self.segments, "\nklj\n") self.total_line_output = [] for i in range(1, self.length_polyline-1): self.total_line_output.extend(self.segments[i].segment()) self.total_line_output.extend(self.arcs[i]) + self.total_line_output.extend( + self.segments[self.length_polyline-1].segment()) def __repr__(self): return str(self.alpha_radii) @@ -137,7 +140,7 @@ class Polyline: # Why -3? # For n points, there are n-1 segments. - self.segments[-3] = Segment2D(self.acrs_intersections[-2][2], Point2D.from_arrays( + self.segments[-1] = Segment2D(self.acrs_intersections[-2][2], Point2D.from_arrays( self.points_array[-1])) return self.segments diff --git a/networks/roads_2/Roads.py b/networks/roads_2/Roads.py index 2faa7c1..d9d8603 100644 --- a/networks/roads_2/Roads.py +++ b/networks/roads_2/Roads.py @@ -53,7 +53,7 @@ class Road: nearest_points_to_reference = [] for i in range(len(self.coordinates)): nearest_points_to_reference.append(Point3D.insert_3d([Point3D.to_2d([self.coordinates[i]], 'y')[0].nearest( - self.polyline.total_line_output)], 'y', [self.coordinates[i].y])) + self.polyline.total_line_output)], 'y', [self.coordinates[i].y])[0]) print(nearest_points_to_reference) def place(self): diff --git a/output_image.png b/output_image.png index ce0197cef5ba2cde93773113656cdf5e7b322b31..9564ae9fb5cadf6a68f5a079a0a5d07e1068a561 100644 GIT binary patch delta 2666 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 delta 3417 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