【发布时间】:2011-08-22 03:40:13
【问题描述】:
我读过这篇文章:generating/creating hexagon grid in C。不过貌似作者和答主都已经放弃了。
√(hexagonSide - hexagonWidth * hexagonWidth): hexagonSide 和 hexagonWidth 是什么?是不是会
而且,我可以将六边形放入矩形中吗?我需要像这样创建一个网格:
还有一件事,我如何安排我的数组来存储数据,以及获取一个单元格旁边的单元格?
我从来没有教过六边形,所以我对它一无所知,但是我可以很容易地学习新东西,所以如果你能解释或给我一个线索,我可以自己做。
【问题讨论】:
-
这样做只需要一点几何学/三角学。六边形顶点的角度都是 360/3 度或 120 度。有了这些信息并使用了 Java 数学库方法(尽管要小心将度数更改为弧度),您应该能够在不使用其他代码的情况下轻松绘制此图。在将代码提交到 IDE 之前,首先使用纸上的图表。我发现最好把六边形想象成六个等边三角形,但做最适合你的事情。如果您遇到困难,请返回您的代码,我们将非常乐意提供帮助!
-
我不确定链接中的人在说什么,但基本的三角学会告诉你,六边形的边 s 与其高度的关系是 s * 平方根3 或在 Java 中
s * Math.sqrt(3); -
查看这篇关于如何找到邻居的帖子stackoverflow.com/questions/6661169/…
-
@WN:我不敢苟同。如果“s”是六边形的边(所以每个六边形有 6 条边,s),那么边长为 s 的等边三角形的高度为 s * sqrt(3) / 2 ... sin 的基本三角的一个 60 度角。由于六边形的高度是三角形高度的两倍,所以从平底到平顶的高度为 2 * s * Math.sqrt(3) / 2,等于 s * Math.sqrt(3)。 Q.E.D.
-
-1 多个问题打包在一起。
标签: java algorithm graphics hexagonal-tiles