2016-11-13 76 views
0

我想構建一個六角形按鈕。這是我得到的代碼。在vb.net中繪製六邊形

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

好像它需要7點與最後一個點等於第一 – Slai

+0

沒事的時候我這樣做:( – ABCDE

+0

是否移動最後一點,首先和重新編號解決? – MrGadget

回答

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) 

注意,此反轉點順序。如果您的處理方法依賴於此,則可能需要重新排序這些點。