GraphicsPath AddLine создает неожиданный путь
Я пытаюсь нарисовать "папку", как изображение, используя GraphicsPath.
Моя функция для создания пути заключается в следующем:
Public Function FolderRect(ByRef r As Rectangle) As System.Drawing.Drawing2D.GraphicsPath
Dim p As New System.Drawing.Drawing2D.GraphicsPath
Dim iTabWidth As Integer = 30
Dim iTabHeight As Integer = 12
With p
Call p.AddLine(r.Left, r.Top, r.Left + iTabWidth, r.Top)
Call p.AddLine(r.Left + iTabWidth, r.Top, r.Left + iTabWidth, r.Top + iTabHeight)
Call p.AddLine(r.Left + iTabWidth, r.Top + iTabHeight, r.Right, r.Top + iTabHeight)
Call p.AddLine(r.Right, r.Top + iTabHeight, r.Right, r.Bottom)
Call p.AddLine(r.Right, r.Bottom, r.Left, r.Bottom)
Call p.AddLine(r.Left, r.Bottom, r.Left, r.Top)
Call p.CloseFigure()
End With
Return p
End Function
Код выглядит правильно для меня, но результат не тот, который я ожидал:
(Я создал "правильную" версию, используя редактор изображений).
Может ли это быть ошибкой в GraphicsPath?
1 ответ
Графический путь почти наверняка правильный. Вы можете убедиться в этом, посмотрев на свойство PathPoints графического пути.
Возможно, что при рисовании графического контура возникает ошибка округления. Попробуйте сделать путь того же размера, что и целевое растровое изображение.