From aec9db1d0d9d84edfed44d7fd73c2f55f2d8a024 Mon Sep 17 00:00:00 2001 From: Xeon0X Date: Wed, 12 Jun 2024 22:38:14 +0200 Subject: [PATCH] Probably working! --- main.py | 4 ++-- networks/geometry/Polyline.py | 13 +++++++------ output_image.png | Bin 534 -> 857 bytes 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/main.py b/main.py index 6915220..4227684 100644 --- a/main.py +++ b/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) diff --git a/networks/geometry/Polyline.py b/networks/geometry/Polyline.py index 9da658b..5cca24b 100644 --- a/networks/geometry/Polyline.py +++ b/networks/geometry/Polyline.py @@ -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): diff --git a/output_image.png b/output_image.png index 2e233fbab52de977523d68cad54649444a49c424..ea3938969a69ad4732f3afc8cc44066c1daddb5d 100644 GIT binary patch delta 835 zcmV-J1HAl}1lb0VBYy)RNkl_o`|C|Lj{3!r2Hlq`Uf1yHg8N)|xL0w`GkKThMS>brmKyBa0S zIvss5GV++5DC>;70%$bDA#35tQnimWb8IlPCrU}jE)koO#eWS&{)pL22l{Jkt$nzM z!l(*yG!Ze&a!LWsm#VZTt#N(bu_*1P9I(i8y|~PV%gvM+WCdJ??Y^E(QD@?frlDu1 zI+(1myE_~%e^YXkWQCZLJIMNKig(!pWCd5)Lo+cdQ=OfY6>Ca1mIaw2&BQ%rg=ea> zp{zxwWItJEQ-6$^xRtDRnd(ob-elJC%Rf=?rhq| za`dGt$8DF@TJSiObtWd8hW(XM--$LC(ksT&!KLOpMt@AZeQU3?_`B_`U)KG1B(0_V zR8iWWo}f%slkZ51$b1FgT4U`YC*5Sbz*+9tBBs63WyxyBG!x0mx7FG4omtN-grTEo zXKBlJK#BVfJk+E*>r!*~KislgnIQ|Txt~{XOHh#phHLr)f0*jGMd;AA$ud0qT(TIe zlSW+$x_>f}ELA<~tjUug6l*5>J3an*tE|J6@$h4e>j?3_(DOIRVwif#l6;MW%gVHa zFb^~naaqn~Wae<)t6SNb^!tVZ3@@th(ybgqB@3Wr0j%s+{yf(LX5#NF8oO*&vH(gJ zz+zbo?|P3{m4TU9$pR=@0PAI~`6TP*o&DRret*3zS=g-#l0w!lWa(CZ9^7diIx}pd zWQCUOCKAaKe_xYP#bgD%`Dc%bQxnDvxsug68yhL35!J)8!mccoC$epoza1@GxAMct zwl0z^eel6R-vjXO&&l=kb0cH!^xd652dDonH7+T-l{qcX{?xBY0@Ux60;K3x-UY{U z={()PwsUl{&GjM!8P|qsDOms|3!r2Hlq`Uf1yHg8N)|xL0w`Gk{{bb?Fs4TkR$~AF N002ovPDHLkV1jUjo3;P| literal 534 zcmeAS@N?(olHy`uVBq!ia0vp^DIm94=ygKXt53(bb6s70&*A<1_*Z9=jl_%3S*G}Uqr6vRXsZ1d`PCQdGK{ais(W$on}68CvZS@|+wc-$95IimpJ}be|_k0K*{fox0e21cp)fZtM_;3Le*Vs?_8>PQx?A# sc+3BP$`P;VX~kik#D_Cd)YLMr?Yp#vd7AA_V0<%py85}Sb4q9e03UtsQUCw|