mirror of
https://github.com/bvanroll/cs-map-project.git
synced 2025-09-02 05:42:43 +00:00
update scaling methode, maar uiteindelijk zijn voor bijna alle landen minimum gewoon 0, wat raar is, mss rounding error?
This commit is contained in:
@@ -34,8 +34,8 @@ namespace Logica
|
|||||||
//oude schaalmethodes
|
//oude schaalmethodes
|
||||||
public PolygonPunten ScalePolygon(PolygonPunten polygon, double scaleX, double scaleY, double offsetX = 0, double offsetY = 0)
|
public PolygonPunten ScalePolygon(PolygonPunten polygon, double scaleX, double scaleY, double offsetX = 0, double offsetY = 0)
|
||||||
{
|
{
|
||||||
double maxX = polygon.MaximumX - polygon.MinimumX;
|
double maxX = polygon.MaximumX;
|
||||||
double maxY = polygon.MaximumY - polygon.MinimumY;
|
double maxY = polygon.MaximumY;
|
||||||
double minX = polygon.MinimumX;
|
double minX = polygon.MinimumX;
|
||||||
double minY = polygon.MinimumY;
|
double minY = polygon.MinimumY;
|
||||||
List<Punt> returnWaarde = new List<Punt>();
|
List<Punt> returnWaarde = new List<Punt>();
|
||||||
@@ -62,11 +62,11 @@ namespace Logica
|
|||||||
private static Punt ScalePoint(double scaleX, double scaleY, Punt punt, double maxX = 1, double maxY = 1, double offsetX = 0, double
|
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)
|
offsetY = 0, double minX = 0, double minY = 0)
|
||||||
{
|
{
|
||||||
double x = punt.X - minX;
|
double x = punt.X;
|
||||||
x /= maxX;
|
x /= maxX;
|
||||||
x *= scaleX;
|
x *= scaleX;
|
||||||
x += offsetX;
|
x += offsetX;
|
||||||
double y = punt.Y - minY;
|
double y = punt.Y;
|
||||||
y /= maxY;
|
y /= maxY;
|
||||||
y *= scaleY;
|
y *= scaleY;
|
||||||
y += offsetY;
|
y += offsetY;
|
||||||
@@ -75,12 +75,10 @@ namespace Logica
|
|||||||
|
|
||||||
public MultiPolygonPunten ScaleMultiPolygon(MultiPolygonPunten multiPolygon, double scaleX, double scaleY, double offsetX = 0, double offsetY = 0)
|
public MultiPolygonPunten ScaleMultiPolygon(MultiPolygonPunten multiPolygon, double scaleX, double scaleY, double offsetX = 0, double offsetY = 0)
|
||||||
{
|
{
|
||||||
double maxX = multiPolygon.MaximumX - multiPolygon.MinimumX;
|
double maxX = multiPolygon.MaximumX;
|
||||||
double maxY = multiPolygon.MaximumY - multiPolygon.MinimumY;
|
double maxY = multiPolygon.MaximumY;
|
||||||
double minX = multiPolygon.MinimumX;
|
double minX = multiPolygon.MinimumX;
|
||||||
double minY = multiPolygon.MinimumY;
|
double minY = multiPolygon.MinimumY;
|
||||||
maxX -= minX;
|
|
||||||
maxY -= minY;
|
|
||||||
List<PolygonPunten> pp = new List<PolygonPunten>();
|
List<PolygonPunten> pp = new List<PolygonPunten>();
|
||||||
foreach (PolygonPunten polygon in multiPolygon.PolygonPunten)
|
foreach (PolygonPunten polygon in multiPolygon.PolygonPunten)
|
||||||
{
|
{
|
||||||
@@ -111,12 +109,12 @@ namespace Logica
|
|||||||
//todo (offset var voor center op canvas, vree ambetant)
|
//todo (offset var voor center op canvas, vree ambetant)
|
||||||
public List<MultiPolygonPunten> ScaleMultiPolygons(List<MultiPolygonPunten> multiPolygons, double scaleX, double scaleY, double offsetX = 0, double offsetY = 0)
|
public List<MultiPolygonPunten> ScaleMultiPolygons(List<MultiPolygonPunten> 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 maxX = multiPolygons.Max(m => m.MaximumX);
|
||||||
double maxY = multiPolygons.Max(m => m.MaximumY);
|
double maxY = multiPolygons.Max(m => m.MaximumY);
|
||||||
double minX = multiPolygons.Min(m => m.MinimumX);
|
double minX = multiPolygons.Min(m => m.MinimumX);
|
||||||
double minY = multiPolygons.Min(m => m.MinimumY);
|
double minY = multiPolygons.Min(m => m.MinimumY);
|
||||||
maxX -= minX;
|
|
||||||
maxY -= minY;
|
|
||||||
List<MultiPolygonPunten> mpps = new List<MultiPolygonPunten>();
|
List<MultiPolygonPunten> mpps = new List<MultiPolygonPunten>();
|
||||||
foreach (MultiPolygonPunten mp in multiPolygons)
|
foreach (MultiPolygonPunten mp in multiPolygons)
|
||||||
{
|
{
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user