【问题标题】:Drawing hexagon in vb.net在 vb.net 中绘制六边形
【发布时间】:2016-11-13 04:35:26
【问题描述】:

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

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)

不幸的是,它看起来是六边形,点在顶部。我想要的是一个顶部有水平线的六边形。

谢谢!

【问题讨论】:

  • 好像需要7分,最后一个点等于第一个
  • 当我这样做时没有任何反应:(
  • 将最后一个点移到第一个并重新编号是否可以解决?
  • 没有@MrGadget,我已经尝试过了,但没有解决它

标签: vb.net polygon shape


【解决方案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)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多