From 5e01e7eacdffeb67f5b554e2e4c8764038ad888e Mon Sep 17 00:00:00 2001 From: "carlo.baronchelli" Date: Mon, 9 Aug 2021 16:02:28 +0200 Subject: [PATCH] Intersezioni per spostamenti --- Frontalini_ecc/CompoAF/Alz&Front.lua | 37 +++++++++++++++++++++----- Frontalini_ecc/CompoAF/rettangoli.nge | Bin 0 -> 993 bytes 2 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 Frontalini_ecc/CompoAF/rettangoli.nge diff --git a/Frontalini_ecc/CompoAF/Alz&Front.lua b/Frontalini_ecc/CompoAF/Alz&Front.lua index eb0f5ff..40acd40 100644 --- a/Frontalini_ecc/CompoAF/Alz&Front.lua +++ b/Frontalini_ecc/CompoAF/Alz&Front.lua @@ -406,7 +406,7 @@ local function CMP_Draw(bPreview) -- ------------------------------------------------------------------ -- verifica delle **INTERSEZIONI TRA RETTANGOLI** e definizione degli eventuali **SPOSTAMENTI** for SideNum = 1 , 3 do --#SideTab do - -- |(ripeti LEGENDA per campi di SideTab)|| + -- |(ripeti LEGENDA per campi di SideTab)| -- |.a = SideId; .b = SideInfo-A/F; c= PrevRec, .d = NextRec;| -- |.l1---.l4 = Rectangle sides| -- |.u = Side Start Vector; .v = Side End Vector;| @@ -419,12 +419,38 @@ local function CMP_Draw(bPreview) local Tab = SideTab local N = SideNum - -- intersezione tra un rettangolo e il successivo + -- a) intersezione tra un rettangolo e il successivo local PtInt12 = EgtIP( Tab[N].l2, Tab[Tab[N].d].l2, EgtEP( Tab[N].l2), GDB_ID.ROOT) - -- intersezione tra un rettangolo e il secondo successivo - local PtInt13 = EgtIP( Tab[N].l2, Tab[Tab[Tab[N].d].d].l2, EgtEP( Tab[N].l2), GDB_ID.ROOT) - -- intersezione tra il rettangolo successivo e il secondo successivo + -- b) intersezione tra il rettangolo successivo e il secondo successivo local PtInt23 = EgtIP( Tab[Tab[N].d].l2, Tab[Tab[Tab[N].d].d].l2, EgtEP( Tab[Tab[N].d].l2), GDB_ID.ROOT) + -- c) intersezione tra un rettangolo e il secondo successivo + local PtInt13 = EgtIP( Tab[N].l2, Tab[Tab[Tab[N].d].d].l2, EgtEP( Tab[N].l2), GDB_ID.ROOT) + + + -- |ATTENZIONE POSSONO INTERSECARSI ANCHE I LATI 1 E 4 DEI RETTANGOLI !!!| + -- calcolo degli spostamenti (lungo i propri lati di riferimento) + -- if a & b & c + -- di r1 rispetto a r2 e a r3 > prendo il maggiore + -- di r3 rispetto a r1 e a r2 > prendo il maggiore + -- poi posso saltare due lati (?) sì se vale l'ipotesi di massimo due angoli a dx + -- elseif a & c & not b + -- di r1 rispetto a r3 e ... viceversa (?) + -- poi posso saltare due lati (?) sì se vale l'ipotesi di massimo due angoli a dx + -- else if a & not b & not c + -- di r1 rispetto a r2 e ... viceversa (?) + -- ma att.ne !!! potrei comprometere situazioni successive !!!!!!!!!!!!!! + -- else if : potrebbe esserci intersezione del singolo rettangolo con il lato successivo + -- o precedente !! + -- end ?? + + + + + + -- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + + + -- PROVA @@ -456,7 +482,6 @@ local function CMP_Draw(bPreview) - -- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< diff --git a/Frontalini_ecc/CompoAF/rettangoli.nge b/Frontalini_ecc/CompoAF/rettangoli.nge new file mode 100644 index 0000000000000000000000000000000000000000..ff92110c8e11e7fd86363fd012be64da9d02956b GIT binary patch literal 993 zcmV<710MVziwFP!000003Y}L?Z{#)%y&Lea=+)9n6!nEcfn<|uy1?$XNCWhkON*Y0 zT>AgfM|)Dq6Vp=|0cMo(GetgAe9ynV+&{mJ!}+g&p8kCM`|$B zpS|T;Vu?t|S6f`DiI7)`HglyKCR4fC7#$OyrACGZ@8g%6Es7~zl{jEY#hY#iPQ`}E zp(LF^6|a}P%dYoF=ncraMn|zsCZ%L^syPb1TrCAKQ9-XK3(iTU1-+)hYq5-&5~dKg zBIcTPb~U&O0l9gfCC`|v%|Vh>dQ(9gwb*@P=?Jl0yd^5^(YGa_hjCzhkb@g+^^RHk z);U`<0k(696*y&E$Q5*$DbCx<%yEZU4Q@DP8+=9@lL4tVR6J;zM;f>44Mr__pWZ`b zAq7huV+>PtXsg6ba@H!_l1c~@7)QtEtWkoN-NgDLy@iu7wH>y(kXf(^Zd=EYZ7iAG zPOmCxqZGJHCAp8Cx+uybahsYlUjlV9?U$7zCk-Ggng1#=4X_7ImF^#jaAbH>LAgxX(*#ptDX~l939^F- zxs=P)R_b}#274AQ@FAwDTk0c5fg6G-`#>)6#F%6?GyZnQwuU!at^2g{5n4O_4FLl@ zIAZD5W*$nmF66AX*~)43;AR|rX6rKSpos0(C_}3%=-xL#ukqY9VU|AaEJ*|R9%EJG zKArIhot@r#7*5!tTBHSH9d5kXCV{n7*NtG(EV+d0cSxIG^}>dh{SPN1j`(6l zF3TM+(u4CYH)0k9-fDH|>_-}K$z`|2!mKWMO>ghwG1*u-!h#wICf=