在vb.net中绘制六边形

时间:2016-11-13 04:35:26

标签: vb.net polygon shape

我想制作一个六角形的按钮。这是我得到的代码。

Dim p(5) As Point
            Dim v As Integer = CInt(Me.Width / 2 * Math.Sin(30 * Math.PI / 180))
            p(0) = New Point(Me.Width \ 2, 0)
            p(1) = New Point(Me.Width, v)
            p(2) = New Point(Me.Width, Me.Height - v)
            p(3) = New Point(Me.Width \ 2, Me.Height)
            p(4) = New Point(0, Me.Height - v)
            p(5) = New Point(0, v)

不幸的是,它显示六角形,顶点。我想要的是一个顶部有水平线的六边形。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以交换x和y坐标,这有效地反映了系统对角线的形状。并相应地调整缩放比例WidthHeight

Dim v As Integer = CInt(Me.Height/ 2 * Math.Sin(30 * Math.PI / 180))
p(0) = New Point(0, Me.Height\ 2)
p(1) = New Point(v, Me.Height)
p(2) = New Point(Me.Width- v, Me.Height)
p(3) = New Point(Me.Width, Me.Height\ 2)
p(4) = New Point(Me.Width - v, 0)
p(5) = New Point(v, 0)

请注意,这会颠倒点数顺序。如果您的处理方法依赖于此,您可能需要重新订购这些点。