2017-03-04 5 views
0

私は地図作成プログラムを書いていると私は、ユーザーがそれを描くよう、川の幅が動的に変化は非常にいい効果持っている:あなたはあなたが見ることができる川を描いたようPolyLine.strokeThicknessの値を動的に変更することはできますか?

enter image description here

を幅の増減。ここでは、コードは次のようになります。

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; 

問題は、ユーザーがマウスボタンをアップすることができますときには、川が戻って均一な幅になっているようですということです。しかし、2つの川岸が出入りするという事実は、目を欺くものです。

私は、ポリラインがラインの全長に対して1つの幅しか持つことができないと考えています。とにかくこれの周りにはありますか?

+0

マップ上の川は、通常、塗りつぶされた線ではなく、塗りつぶされた線です。 – Clemens

+0

私は湖沼、森林&湿原を埋める。私はちょうどストロークラインでこれを行うことを望んでいた。 – zetar

答えて

0

ポリラインは、ラインの全長に対して1つの幅しか持たないと思っています。とにかくこれの周りにはありますか?

いいえ、代わりに塗りつぶし領域を使用する必要があります。

関連する問題