我想制作一个六角形的按钮。这是我得到的代码。
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)
不幸的是,它显示六角形,顶点。我想要的是一个顶部有水平线的六边形。
谢谢!
答案 0 :(得分:1)
您可以交换x和y坐标,这有效地反映了系统对角线的形状。并相应地调整缩放比例Width
和Height
:
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)
请注意,这会颠倒点数顺序。如果您的处理方法依赖于此,您可能需要重新订购这些点。