Changed ColorInterp
This commit is contained in:
parent
68cb0ee3fd
commit
18822e2152
@ -10,13 +10,11 @@ namespace RenderPath;
|
|||||||
public static class Renderer
|
public static class Renderer
|
||||||
{
|
{
|
||||||
private const int ImageMaxSize = 20000;
|
private const int ImageMaxSize = 20000;
|
||||||
private const float PenThickness = 3;
|
private const float PenThickness = 2;
|
||||||
private static readonly Color RouteColor = Color.Red;
|
private static readonly Color RouteColor = Color.Red;
|
||||||
private static readonly Color WeightStartColor = Color.FromArgb(200, 0, 0, 255);
|
private static readonly Color WeightStartColor = Color.FromArgb(127, 0, 100, 255);
|
||||||
private static readonly Color WeightCenterColor = Color.FromArgb(200,255, 255, 0);
|
private static readonly Color WeightEndColor = Color.FromArgb(255,0, 255, 0);
|
||||||
private static readonly Color WeightEndColor = Color.FromArgb(200,0, 255, 0);
|
private static readonly Color RoadPrioStart = Color.FromArgb(200, 100, 100, 100);
|
||||||
private static readonly Color RoadPrioStart = Color.FromArgb(100, 100, 100, 100);
|
|
||||||
private static readonly Color RoadPrioCenter = Color.FromArgb(255, 100, 200, 255);
|
|
||||||
private static readonly Color RoadPrioEnd = Color.FromArgb(255, 255, 180, 0);
|
private static readonly Color RoadPrioEnd = Color.FromArgb(255, 255, 180, 0);
|
||||||
|
|
||||||
public class Bounds
|
public class Bounds
|
||||||
@ -78,7 +76,7 @@ public static class Renderer
|
|||||||
OsmNode nNode = rm.GetNode(edge.neighborId, edge.neighborRegion)!;
|
OsmNode nNode = rm.GetNode(edge.neighborId, edge.neighborRegion)!;
|
||||||
Coordinates c2 = nNode.coordinates;
|
Coordinates c2 = nNode.coordinates;
|
||||||
|
|
||||||
Pen p = new(GradientPick(priority, RoadPrioStart, RoadPrioCenter, RoadPrioEnd), PenThickness);
|
Pen p = new(ColorInterp(RoadPrioStart, RoadPrioEnd, priority), PenThickness);
|
||||||
float x1 = (c1.longitude - minLon) * scaleFactor;
|
float x1 = (c1.longitude - minLon) * scaleFactor;
|
||||||
float y1 = (maxLat - c1.latitude) * scaleFactor;
|
float y1 = (maxLat - c1.latitude) * scaleFactor;
|
||||||
float x2 = (c2.longitude - minLon) * scaleFactor;
|
float x2 = (c2.longitude - minLon) * scaleFactor;
|
||||||
@ -165,7 +163,7 @@ public static class Renderer
|
|||||||
foreach (KeyValuePair<OsmNode, double> kv in gScore)
|
foreach (KeyValuePair<OsmNode, double> kv in gScore)
|
||||||
{
|
{
|
||||||
double percentage = (kv.Value - minWeight) / (maxWeight - minWeight);
|
double percentage = (kv.Value - minWeight) / (maxWeight - minWeight);
|
||||||
Brush b = new SolidBrush(GradientPick(percentage, WeightStartColor, WeightCenterColor, WeightEndColor));
|
Brush b = new SolidBrush(ColorInterp(WeightStartColor, WeightEndColor, percentage));
|
||||||
|
|
||||||
float x = (kv.Key.coordinates.longitude - minLon) * scaleFactor;
|
float x = (kv.Key.coordinates.longitude - minLon) * scaleFactor;
|
||||||
float y = (maxLat - kv.Key.coordinates.latitude) * scaleFactor;
|
float y = (maxLat - kv.Key.coordinates.latitude) * scaleFactor;
|
||||||
@ -187,12 +185,4 @@ public static class Renderer
|
|||||||
LinearInterp(start.R, end.R, percentage),
|
LinearInterp(start.R, end.R, percentage),
|
||||||
LinearInterp(start.G, end.G, percentage),
|
LinearInterp(start.G, end.G, percentage),
|
||||||
LinearInterp(start.B, end.B, percentage));
|
LinearInterp(start.B, end.B, percentage));
|
||||||
private static Color GradientPick(double percentage, Color Start, Color Center, Color End) {
|
|
||||||
if (percentage < 0.5)
|
|
||||||
return ColorInterp(Start, Center, percentage / 0.5);
|
|
||||||
else if (percentage == 0.5)
|
|
||||||
return Center;
|
|
||||||
else
|
|
||||||
return ColorInterp(Center, End, (percentage - 0.5)/0.5);
|
|
||||||
}
|
|
||||||
}
|
}
|
Reference in New Issue
Block a user