Probably working!
This commit is contained in:
4
main.py
4
main.py
@@ -286,8 +286,8 @@ block_list = ["blue_concrete", "red_concrete", "green_concrete",
|
||||
# p = Polyline((Point2D(-1225, 468), Point2D(-1138, 481),
|
||||
# Point2D(-1188, 451), Point2D(-1176, 409), Point2D(-1179, 399)))
|
||||
|
||||
p = Polyline((Point2D(32, 0), Point2D(16, 16),
|
||||
Point2D(16, 0), Point2D(0, 0)))
|
||||
p = Polyline((Point2D(64, -20), Point2D(48, 32),
|
||||
Point2D(16, 0), Point2D(0, 0), Point2D(-10, -10)))
|
||||
|
||||
# Point2D(-1156, 378), Point2D(-1220, 359), Point2D(-1265, 290)
|
||||
# print(p.alpha_radii)
|
||||
|
||||
@@ -26,7 +26,7 @@ class Polyline:
|
||||
raise ValueError("The list must contain at least 4 elements.")
|
||||
|
||||
self.vectors = [None] * self.length_polyline # v
|
||||
self.lengths = [None] * self.length_polyline # l
|
||||
self.lengths = [None] * (self.length_polyline - 1) # l
|
||||
self.unit_vectors = [None] * self.length_polyline # n
|
||||
self.tangente = [0] * self.length_polyline # f
|
||||
|
||||
@@ -45,7 +45,7 @@ class Polyline:
|
||||
|
||||
def get_radii(self):
|
||||
for i in range(1, self.length_polyline-1):
|
||||
print(self.alpha_radii[i] * self.tangente[i],
|
||||
print("\nalpha_radii, tan", 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
|
||||
@@ -53,10 +53,11 @@ class Polyline:
|
||||
def get_centers(self):
|
||||
for i in range(1, self.length_polyline-1):
|
||||
bisector = (self.unit_vectors[i] - self.unit_vectors[i-1]) / (
|
||||
np.linalg.norm(self.unit_vectors[i] + self.unit_vectors[i-1]))
|
||||
np.linalg.norm(self.unit_vectors[i] - self.unit_vectors[i-1]))
|
||||
print("bi", bisector)
|
||||
|
||||
array = self.points[i] + sqrt(self.radii[i]
|
||||
** 2 + self.alpha_radii[i] ** 2) * bisector
|
||||
array = self.points[i] + sqrt((self.radii[i]
|
||||
** 2) + (self.alpha_radii[i] ** 2)) * bisector
|
||||
self.centers[i] = Point2D(array[0], array[1]).round()
|
||||
return self.centers
|
||||
|
||||
@@ -124,7 +125,7 @@ class Polyline:
|
||||
|
||||
# Between two segments, there is only one angle
|
||||
for k in range(1, self.length_polyline-1):
|
||||
dot = np.dot(self.unit_vectors[k], -self.unit_vectors[k-1])
|
||||
dot = np.dot(self.unit_vectors[k], self.unit_vectors[k-1])
|
||||
self.tangente[k] = sqrt((1+dot)/(1-dot))
|
||||
|
||||
def _compute_alpha_radii(self):
|
||||
|
||||
BIN
output_image.png
BIN
output_image.png
Binary file not shown.
|
Before Width: | Height: | Size: 534 B After Width: | Height: | Size: 857 B |
Reference in New Issue
Block a user