diff --git a/Datalaag/bin/Debug/Globals.dll b/Datalaag/bin/Debug/Globals.dll index 9ac85e4..9466969 100644 Binary files a/Datalaag/bin/Debug/Globals.dll and b/Datalaag/bin/Debug/Globals.dll differ diff --git a/Datalaag/bin/Debug/Globals.pdb b/Datalaag/bin/Debug/Globals.pdb index e307690..c95a5f4 100644 Binary files a/Datalaag/bin/Debug/Globals.pdb and b/Datalaag/bin/Debug/Globals.pdb differ diff --git a/Globals/MultiPolygonPunten.cs b/Globals/MultiPolygonPunten.cs index e53e998..de02f15 100644 --- a/Globals/MultiPolygonPunten.cs +++ b/Globals/MultiPolygonPunten.cs @@ -34,9 +34,9 @@ namespace Globals private void UpdateMaximumEnMinimum(PolygonPunten polygon) { if (polygon.MaximumX > MaximumX) MaximumX = polygon.MaximumX; - else if (polygon.MinimumX < MinimumX) MinimumX = polygon.MinimumX; + if (polygon.MinimumX < MinimumX) MinimumX = polygon.MinimumX; if (polygon.MaximumY > MaximumY) MaximumY = polygon.MaximumY; - else if (polygon.MinimumY < MinimumY) MinimumY = polygon.MinimumY; + if (polygon.MinimumY < MinimumY) MinimumY = polygon.MinimumY; } public void UpdateMaximumEnMinimum() diff --git a/Globals/PolygonPunten.cs b/Globals/PolygonPunten.cs index 317c9e3..a09e061 100644 --- a/Globals/PolygonPunten.cs +++ b/Globals/PolygonPunten.cs @@ -14,13 +14,22 @@ namespace Globals { Punten = punten; Naam = naam; + MaximumX = Double.MinValue; + MaximumY = Double.MinValue; + MinimumX = Double.MaxValue; + MinimumY = Double.MaxValue; + UpdateMaxEnMinPunt(); } - public PolygonPunten(GeoJSON.Net.Geometry.Polygon polygon, string naam = "", bool reverse = true) + public PolygonPunten(Polygon polygon, string naam = "", bool reverse = true) { Naam = naam; Punten = new List(); + MaximumX = Double.MinValue; + MaximumY = Double.MinValue; + MinimumX = Double.MaxValue; + MinimumY = Double.MaxValue; foreach (LineString linestring in polygon.Coordinates) { diff --git a/Globals/Punt.cs b/Globals/Punt.cs index 09b99e5..9f3f545 100644 --- a/Globals/Punt.cs +++ b/Globals/Punt.cs @@ -12,8 +12,8 @@ namespace Globals Naam = naam; if (Graden) { - X = ConvertToPercentage(x) * 100; - Y = ConvertToPercentage(y) * 100; + X = ConvertToPercentage(x) * 50 + 50; + Y = ConvertToPercentage(y) * 50 + 50; } else { @@ -30,7 +30,7 @@ namespace Globals public double ConvertToPercentage(double angle) { - if (angle < 0) angle += 360; + return angle / 360; } diff --git a/Globals/bin/Debug/Globals.dll b/Globals/bin/Debug/Globals.dll index 9ac85e4..9466969 100644 Binary files a/Globals/bin/Debug/Globals.dll and b/Globals/bin/Debug/Globals.dll differ diff --git a/Globals/bin/Debug/Globals.pdb b/Globals/bin/Debug/Globals.pdb index e307690..c95a5f4 100644 Binary files a/Globals/bin/Debug/Globals.pdb and b/Globals/bin/Debug/Globals.pdb differ diff --git a/Globals/obj/Debug/Globals.dll b/Globals/obj/Debug/Globals.dll index 9ac85e4..9466969 100644 Binary files a/Globals/obj/Debug/Globals.dll and b/Globals/obj/Debug/Globals.dll differ diff --git a/Globals/obj/Debug/Globals.pdb b/Globals/obj/Debug/Globals.pdb index e307690..c95a5f4 100644 Binary files a/Globals/obj/Debug/Globals.pdb and b/Globals/obj/Debug/Globals.pdb differ diff --git a/Logica/PolygonManipulatie.cs b/Logica/PolygonManipulatie.cs index 8d0748b..fa945ba 100644 --- a/Logica/PolygonManipulatie.cs +++ b/Logica/PolygonManipulatie.cs @@ -58,16 +58,16 @@ namespace Logica return new PolygonPunten(returnWaarde, polygon.Naam); } - //lat en long = graden, graden => coords (/360 * scale? + //scaling maakt nu gebruik van max en min waarden, dus als iets een punt was op 360 graden wordt het nu gezoomed private static Punt ScalePoint(double scaleX, double scaleY, Punt punt, double maxX = 1, double maxY = 1, double offsetX = 0, double offsetY = 0, double minX = 0, double minY = 0) { - double x = punt.X; - x /= maxX; + double x = punt.X - minX; + x /= (maxX - minX); x *= scaleX; x += offsetX; - double y = punt.Y; - y /= maxY; + double y = punt.Y - minY; + y /= (maxY - minY); y *= scaleY; y += offsetY; return new Punt(x, y, punt.Naam); @@ -106,14 +106,19 @@ namespace Logica return new MultiPolygonPunten(pp, multiPolygon.Naam); } - //todo (offset var voor center op canvas, vree ambetant) public List ScaleMultiPolygons(List multiPolygons, double scaleX, double scaleY, double offsetX = 0, double offsetY = 0) { - //TODO onderdeel versnelen door manuele for each loop - double maxX = multiPolygons.Max(m => m.MaximumX); - double maxY = multiPolygons.Max(m => m.MaximumY); - double minX = multiPolygons.Min(m => m.MinimumX); - double minY = multiPolygons.Min(m => m.MinimumY); + double maxX = Double.MinValue; + double maxY = Double.MinValue; + double minX = Double.MaxValue; + double minY = Double.MaxValue; + foreach (MultiPolygonPunten mp in multiPolygons) + { + if (mp.MaximumX > maxX) maxX = mp.MaximumX; + if (mp.MinimumX < minX) minX = mp.MinimumX; + if (mp.MaximumY > maxY) maxY = mp.MaximumY; + if (mp.MinimumY < minY) minY = mp.MinimumY; + } List mpps = new List(); foreach (MultiPolygonPunten mp in multiPolygons) diff --git a/Logica/bin/Debug/Globals.dll b/Logica/bin/Debug/Globals.dll index 9ac85e4..9466969 100644 Binary files a/Logica/bin/Debug/Globals.dll and b/Logica/bin/Debug/Globals.dll differ diff --git a/Logica/bin/Debug/Globals.pdb b/Logica/bin/Debug/Globals.pdb index e307690..c95a5f4 100644 Binary files a/Logica/bin/Debug/Globals.pdb and b/Logica/bin/Debug/Globals.pdb differ diff --git a/Logica/bin/Debug/Logica.dll b/Logica/bin/Debug/Logica.dll index 16830e6..47de284 100644 Binary files a/Logica/bin/Debug/Logica.dll and b/Logica/bin/Debug/Logica.dll differ diff --git a/Logica/bin/Debug/Logica.pdb b/Logica/bin/Debug/Logica.pdb index 25e7ae3..b7eb79b 100644 Binary files a/Logica/bin/Debug/Logica.pdb and b/Logica/bin/Debug/Logica.pdb differ diff --git a/Logica/obj/Debug/Logica.csprojAssemblyReference.cache b/Logica/obj/Debug/Logica.csprojAssemblyReference.cache index f499c63..6c531c9 100644 Binary files a/Logica/obj/Debug/Logica.csprojAssemblyReference.cache and b/Logica/obj/Debug/Logica.csprojAssemblyReference.cache differ diff --git a/Logica/obj/Debug/Logica.dll b/Logica/obj/Debug/Logica.dll index 16830e6..47de284 100644 Binary files a/Logica/obj/Debug/Logica.dll and b/Logica/obj/Debug/Logica.dll differ diff --git a/Logica/obj/Debug/Logica.pdb b/Logica/obj/Debug/Logica.pdb index 25e7ae3..b7eb79b 100644 Binary files a/Logica/obj/Debug/Logica.pdb and b/Logica/obj/Debug/Logica.pdb differ diff --git a/opdracht2/MainWindow.xaml.cs b/opdracht2/MainWindow.xaml.cs index 0e17e1c..006d062 100644 --- a/opdracht2/MainWindow.xaml.cs +++ b/opdracht2/MainWindow.xaml.cs @@ -108,13 +108,11 @@ namespace opdracht2 //voorbereiding van scale waarden. - + double scaleX = (c.ActualHeight > c.ActualWidth) ? c.ActualWidth : c.ActualHeight; double scaleY = (c.ActualHeight > c.ActualWidth) ? c.ActualWidth : c.ActualHeight; - scaleX /= 2; - scaleY /= 2; - double offsetX = scaleX; //vroeger c.ActualWidth/2 - double offsetY = scaleY; + double offsetX = 0; //vroeger c.ActualWidth/2 + double offsetY = 0; //dit zorgt voor evenredige scaling zonder stretching. als men wel stretching wilt gebruiken: // scaleX = c.ActualWidth; // scaleY = c.ActualHeight; diff --git a/opdracht2/bin/Debug/netcoreapp3.1/Globals.dll b/opdracht2/bin/Debug/netcoreapp3.1/Globals.dll index 9ac85e4..9466969 100644 Binary files a/opdracht2/bin/Debug/netcoreapp3.1/Globals.dll and b/opdracht2/bin/Debug/netcoreapp3.1/Globals.dll differ diff --git a/opdracht2/bin/Debug/netcoreapp3.1/Globals.pdb b/opdracht2/bin/Debug/netcoreapp3.1/Globals.pdb index e307690..c95a5f4 100644 Binary files a/opdracht2/bin/Debug/netcoreapp3.1/Globals.pdb and b/opdracht2/bin/Debug/netcoreapp3.1/Globals.pdb differ diff --git a/opdracht2/bin/Debug/netcoreapp3.1/Logica.dll b/opdracht2/bin/Debug/netcoreapp3.1/Logica.dll index 16830e6..47de284 100644 Binary files a/opdracht2/bin/Debug/netcoreapp3.1/Logica.dll and b/opdracht2/bin/Debug/netcoreapp3.1/Logica.dll differ diff --git a/opdracht2/bin/Debug/netcoreapp3.1/Logica.pdb b/opdracht2/bin/Debug/netcoreapp3.1/Logica.pdb index 25e7ae3..b7eb79b 100644 Binary files a/opdracht2/bin/Debug/netcoreapp3.1/Logica.pdb and b/opdracht2/bin/Debug/netcoreapp3.1/Logica.pdb differ diff --git a/opdracht2/bin/Debug/netcoreapp3.1/opdracht2.dll b/opdracht2/bin/Debug/netcoreapp3.1/opdracht2.dll index 0f43621..c88ec53 100644 Binary files a/opdracht2/bin/Debug/netcoreapp3.1/opdracht2.dll and b/opdracht2/bin/Debug/netcoreapp3.1/opdracht2.dll differ diff --git a/opdracht2/bin/Debug/netcoreapp3.1/opdracht2.pdb b/opdracht2/bin/Debug/netcoreapp3.1/opdracht2.pdb index 3e8c7ed..89202e4 100644 Binary files a/opdracht2/bin/Debug/netcoreapp3.1/opdracht2.pdb and b/opdracht2/bin/Debug/netcoreapp3.1/opdracht2.pdb differ diff --git a/opdracht2/obj/Debug/netcoreapp3.1/opdracht2.csprojAssemblyReference.cache b/opdracht2/obj/Debug/netcoreapp3.1/opdracht2.csprojAssemblyReference.cache index 3457320..9734cdb 100644 Binary files a/opdracht2/obj/Debug/netcoreapp3.1/opdracht2.csprojAssemblyReference.cache and b/opdracht2/obj/Debug/netcoreapp3.1/opdracht2.csprojAssemblyReference.cache differ diff --git a/opdracht2/obj/Debug/netcoreapp3.1/opdracht2.dll b/opdracht2/obj/Debug/netcoreapp3.1/opdracht2.dll index 0f43621..c88ec53 100644 Binary files a/opdracht2/obj/Debug/netcoreapp3.1/opdracht2.dll and b/opdracht2/obj/Debug/netcoreapp3.1/opdracht2.dll differ diff --git a/opdracht2/obj/Debug/netcoreapp3.1/opdracht2.pdb b/opdracht2/obj/Debug/netcoreapp3.1/opdracht2.pdb index 3e8c7ed..89202e4 100644 Binary files a/opdracht2/obj/Debug/netcoreapp3.1/opdracht2.pdb and b/opdracht2/obj/Debug/netcoreapp3.1/opdracht2.pdb differ