【发布时间】:2017-07-24 22:22:55
【问题描述】:
我正在编写一个地图制作程序,我有一个非常好的效果,河流的宽度会随着用户绘制而动态变化:
当您绘制河流时,您可以看到宽度增加和减少。代码如下:
Point TempP = new Point();
Point TempPBottom = new Point();
int ChangeRiverSize = 0;
int HowMuch = 0;
ChangeRiverSize = rnd.Next(1, 11);
if (ChangeRiverSize == 1)
{
HowMuch = rnd.Next(1, 3);
}
polyLine.Stroke = System.Windows.Media.Brushes.LightBlue;
if (HowMuch == 1)
RiverWidth--;
else if (HowMuch == 2)
RiverWidth++;
polyLine.StrokeThickness = RiverWidth;
TopPolyLine.Stroke = new SolidColorBrush(Colors.CornflowerBlue);
TopPolyLine.StrokeThickness = 2;
BottomPolyLine.Stroke = new SolidColorBrush(Colors.CornflowerBlue);
BottomPolyLine.StrokeThickness = 1;
currentPoint = e.GetPosition(MainCanvas);
TempP = currentPoint;
TempP.Y = TempP.Y - (RiverWidth / 2);
TempPBottom = currentPoint;
TempPBottom.Y = TempPBottom.Y + (RiverWidth / 2);
polygonPoints.Add(currentPoint);
TopPolygonPoints.Add(TempP);
BottomPolygonPoints.Add(TempPBottom);
polyLine.Points = polygonPoints;
TopPolyLine.Points = TopPolygonPoints;
BottomPolyLine.Points = BottomPolygonPoints;
问题是当用户松开鼠标按钮时,河流似乎回到了统一的宽度。然而,两条河岸进进出出的事实愚弄了眼睛。
我认为折线的整个长度只能有一个宽度。反正有这个吗?
【问题讨论】:
-
地图上的河流通常是一个填充区域,而不是一条描边线。
-
我为湖泊、森林和沼泽做填充。我只是希望用描边线来做到这一点。