我正在開發一個WindowsForms應用程序,我需要突出顯示用圖形路徑定義的一些圖形。什麼是使用GraphicsPath的Rectangle.Inflate()等價物?
using Drawing.Drawing2D
有沒有類似Rectangle.Inflate()
但對於GraphicsPath
?
我只需要在x和y中給相同的值充氣。
在此先感謝。
我正在開發一個WindowsForms應用程序,我需要突出顯示用圖形路徑定義的一些圖形。什麼是使用GraphicsPath的Rectangle.Inflate()等價物?
using Drawing.Drawing2D
有沒有類似Rectangle.Inflate()
但對於GraphicsPath
?
我只需要在x和y中給相同的值充氣。
在此先感謝。
如果你想所代表的數字你GraphicsPath
出現更大,我個人會用一個圖形變換:
using (Graphics graphics = /* ... */)
{
var matrix = new Matrix();
matrix.Translate(/* ... */); // put the mid-point of the figure here
matrix.Scale(1.5f, 1.5f); // makes it 50% bigger
matrix.Translate(/* ... */); // put the same mid-point here, but negative
graphics.Transform = matrix;
graphics.FillPath(/* ... */); // or DrawPath
// Use this to reset the transform if you still need the Graphics object
graphics.Transform = new Matrix();
}
那麼,有GraphicsPath.Widen
,但它不是完全一樣的Rectangle.Inflate
。
基本上,它繪製使用指定筆GraphicsPath
的輪廓,然後返回你GraphicsPath
表示由此繪製的區域。
如果您只想在屏幕上繪製加寬的圖形,則可以始終繪製兩個圖形:首先是「加寬」路徑,然後是原始圖像(用於「填充」)。但話又說回來,你可能只是使用相同的畫筆繪製原始路徑的輪廓......
順便提一下,您可以使用GraphicsPath的邊界矩形中點獲取中點的近似值。 – 2011-02-25 17:03:35