Haskell-Things / HSlice

HSlice - A Haskell based slicer for 3D printing.
https://implicitcad.org/
GNU Affero General Public License v3.0
74 stars 5 forks source link

Find additional algorithmic restrictions on motorcycle join operations #151

Open julialongtin opened 6 months ago

julialongtin commented 6 months ago

broken in 6b97dd3.

Wrong: Algebra(2,0,1,()=>{ var line = (a,b,c)=>a1e1 + b1e2 + c1e0; var point = (x,y)=>!(1e0 + x1e1 + y*1e2); var aaa = point(-1.0,1.0); var aab = point(-1.0,-1.0); var aba = point(-1.0,-1.0); var abb = point(-0.5,-1.0); var aca = point(-0.5,-1.0); var acb = point(0.0,0.0); var ada = point(0.0,0.0); var adb = point(0.5,-1.0); var aea = point(0.5,-1.0); var aeb = point(1.0,-1.0); var afa = point(1.0,-1.0); var afb = point(1.0,1.0); var aga = point(1.0,1.0); var agb = point(-1.0,1.0); var aha = 0.7071067811865475e1-0.7071067811865475e2+0.0e0; var ahb = 0.8506508083520399e1+0.5257311121191337e2+0.9510565162951536e0; var ahc = 0.9932897335288758e1-0.11565251949756605e2+0.606432399999752e0; var aia = -0.7071067811865475e1-0.7071067811865475e2+0.0e0; var aib = 0.9932897335288758e1-0.11565251949756605e2+0.606432399999752e0; var aic = 0.5257311121191336e1-0.8506508083520399e2+0.5877852522924731e0; var aja = 0.8506508083520399e1-0.5257311121191337e2-0.9510565162951536e0; var ajb = 0.7071067811865475e1+0.7071067811865475e2+0.0e0; var ajc = 0.9932897335288758e1+0.11565251949756605e2-0.606432399999752e0; var aka = 0.9932897335288758e1+0.11565251949756605e2-0.606432399999752e0; var akb = -0.7071067811865475e1+0.7071067811865475e2+0.0e0; var akc = 0.5257311121191336e1+0.8506508083520399e2-0.5877852522924731e0; var ala = 0.5257311121191336e1-0.8506508083520399e2+0.5877852522924731e0; var alb = 1.0e1+0.0e2+0.0e0; var alc = 0.5257311121191336e1+0.8506508083520399e2-0.5877852522924731e0; document.body.appendChild(this.graph([ 0x882288, [aaa,aab], 0x00AA88, aaa, "aaa", aab, "aab", 0x882288, [aba,abb], 0x00AA88, aba, "aba", abb, "abb", 0x882288, [aca,acb], 0x00AA88, aca, "aca", acb, "acb", 0x882288, [ada,adb], 0x00AA88, ada, "ada", adb, "adb", 0x882288, [aea,aeb], 0x00AA88, aea, "aea", aeb, "aeb", 0x882288, [afa,afb], 0x00AA88, afa, "afa", afb, "afb", 0x882288, [aga,agb], 0x00AA88, aga, "aga", agb, "agb", aha, "aha", ahb, "ahb", ahc, "ahc", aia, "aia", aib, "aib", aic, "aic", aja, "aja", ajb, "ajb", ajc, "ajc", aka, "aka", akb, "akb", akc, "akc", ala, "ala", alb, "alb", alc, "alc", ],{ grid: true, labels: true, lineWidth: 3, pointRadius: 1, fontSize: 1, scale: 1, })); });

Right: Algebra(2,0,1,()=>{ var line = (a,b,c)=>a1e1 + b1e2 + c1e0; var point = (x,y)=>!(1e0 + x1e1 + y*1e2); var aaa = point(-1.0,1.0); var aab = point(-1.0,-1.0); var aba = point(-1.0,-1.0); var abb = point(-0.5,-1.0); var aca = point(-0.5,-1.0); var acb = point(0.0,0.0); var ada = point(0.0,0.0); var adb = point(0.5,-1.0); var aea = point(0.5,-1.0); var aeb = point(1.0,-1.0); var afa = point(1.0,-1.0); var afb = point(1.0,1.0); var aga = point(1.0,1.0); var agb = point(-1.0,1.0); var aha = 0.7071067811865475e1-0.7071067811865475e2+0.0e0; var ahb = 0.8506508083520399e1+0.5257311121191337e2+0.9510565162951536e0; var ahc = 0.9932897335288758e1-0.11565251949756612e2+0.606432399999752e0; var aia = 0.8506508083520399e1-0.5257311121191337e2-0.9510565162951536e0; var aib = 0.7071067811865475e1+0.7071067811865475e2+0.0e0; var aic = 0.9932897335288758e1+0.11565251949756612e2-0.606432399999752e0; var aja = -0.7071067811865475e1-0.7071067811865475e2+0.0e0; var ajb = 0.9932897335288758e1-0.11565251949756612e2+0.606432399999752e0; var ajc = 0.46640281702659836e1-1.7696651604731914e2+1.2228085515337068e0; var aka = 0.9932897335288758e1+0.11565251949756612e2-0.606432399999752e0; var akb = -0.7071067811865475e1+0.7071067811865475e2+0.0e0; var akc = 0.4664028170265986e1+1.7696651604731914e2-1.2228085515337068e0; var ala = 0.46640281702659836e1-1.7696651604731914e2+1.2228085515337068e0; var alb = 1.7888543819998317e1+0.0e2+0.0e0; var alc = 0.4664028170265986e1+1.7696651604731914e2-1.2228085515337068e0; document.body.appendChild(this.graph([ 0x882288, [aaa,aab], 0x00AA88, aaa, "aaa", aab, "aab", 0x882288, [aba,abb], 0x00AA88, aba, "aba", abb, "abb", 0x882288, [aca,acb], 0x00AA88, aca, "aca", acb, "acb", 0x882288, [ada,adb], 0x00AA88, ada, "ada", adb, "adb", 0x882288, [aea,aeb], 0x00AA88, aea, "aea", aeb, "aeb", 0x882288, [afa,afb], 0x00AA88, afa, "afa", afb, "afb", 0x882288, [aga,agb], 0x00AA88, aga, "aga", agb, "agb", aha, "aha", ahb, "ahb", ahc, "ahc", aia, "aia", aib, "aib", aic, "aic", aja, "aja", ajb, "ajb", ajc, "ajc", aka, "aka", akb, "akb", akc, "akc", ala, "ala", alb, "alb", alc, "alc", ],{ grid: true, labels: true, lineWidth: 3, pointRadius: 1, fontSize: 1, scale: 1, }));