2016-11-13 22 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

それは私が:( – Slai

+0

何も起こらないに等しい最後の点で7点を必要とするように思えるん? – 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) 

が、これはポイントの順序を逆にすることに注意してください。処理方法がそれに依存している場合は、ポイントを並べ替える必要があります。

関連する問題