嗨我試圖得到一個矩形,完全包圍通過GDI +繪製的形狀,當筆很厚時。查找GDI +形狀的邊界
這是我的測試代碼,演示,我剛剛加入到mybase.load來測試..
Dim bmp As New Bitmap(500, 500)
Dim g As Graphics = Graphics.FromImage(bmp)
g.Clear(Color.Transparent)
g.SmoothingMode = SmoothingMode.HighQuality
g.PixelOffsetMode = PixelOffsetMode.Default
' Setup Matrix
Dim mat As New Matrix
mat.Translate(100, 100)
g.Transform = mat
' Draw Lines and Fill
Dim gp As New GraphicsPath
gp.AddLines({New Point(50, 0), New Point(100, 100), New Point(0, 100)})
gp.CloseAllFigures() ' Closes Open Path (ie join back to origin)
g.FillPath(New SolidBrush(Color.Beige), gp)
' Add Border to Graphics Path
g.DrawPath(New Pen(New SolidBrush(Color.Black), 20), gp)
g.DrawRectangle(New Pen(New SolidBrush(Color.Red), 1), Rectangle.Truncate(gp.GetBounds))
' Tidy Up
g.ResetTransform()
mat.Dispose()
' Set Picturebox Value
PictureBox1.Image = bmp
我會發布的圖像,但該論壇不讓我。
我想邊界矩形也包括筆寬。我用上面的三角形演示了我不能添加筆寬/ 2。
任何想法?
朱利安
使用GraphicsPath.GetBounds(Matrix,Pen)方法。 – 2014-10-04 14:12:53
您好我正在重溫這並嘗試GraphicsPath.GetBounds(矩陣,筆)方法,但無論我做什麼,我都不能讓它正常工作。當然,它會返回結果,但它們看起來與我期望的三角形稍寬的筆寬不同。有任何想法嗎? – 2015-05-25 12:01:54