2017-03-04 107 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; 

問題是,當用戶放棄鼠標按鈕時,似乎河流回到統一的寬度。然而,這兩個河岸移動和移出的事實愚弄了眼睛。

我在想,折線只能有一個寬度的整個線的長度。有沒有辦法解決?

+0

地圖上的河流通常是一個填充區域,而不是描邊線條。 – Clemens

+0

我填補了湖泊,森林和沼澤。我只是希望用一條線來做到這一點。 – zetar

回答

0

我在想,折線只能有一個寬度的整個線的長度。有沒有辦法解決?

不,您必須改用填充區域。

相關問題