回答
所以hexagon is a neat library为AS3游戏,它有可能是在您的研究派上用场的六边形类。 This article在Flash中有一些非常好的细节。
有几种方法可以管理十六进制地图坐标,并且大多数方法不会直观地坚持将它们映射到只对渲染很重要的x-y坐标。某些形式的极坐标通常是最好的。我有一个用于管理大多数矢量计算的perl库,这是非常有用的参考计算,如AI和其他搜索树。
http://en.wikipedia.org/wiki/Polar_coordinate_system
对于廉价座位,极坐标绘制的一个点作为原点(如标准XY笛卡尔图表),选取一个向量作为基线(如笛卡尔),然后指定点为(大小,度)。
这里真正命中带有十六进制图的本垒打是每个纯角都是60度的倍数。如果你为每个十六进制面分配一个面((a,b,d,e,f,g))并将一个向量作为幅值和面向,将会出现几个有用的属性。两个相邻矢量(或其中第二个矢量是幅度0或恒等元素的单个矢量)的和。例如1a + 1b = 1a1b或1b1a。无论哪种方式,它是遍历2格,数量级为2,并从原点(0,0)指定一个唯一的十六进制。 2)非相邻矢量总是可以简化为应用这些规则的两个相邻矢量:2)否定:1A + 1D = 0,1B + 1E = 0,1C + 1F = 0,例如, 3)组合:1A + 1C = 1B,1B + 1D = 1C,1C + 1E = 1D,1D + 1F = 1E,1E + 1A = 1F
要保持这些原则,实际空间,需要将向量保留为级联或较小遍历的次序。 1A + 1A + 1C + 1C代表一个导弹,它将两个格子向外移动,然后急速(120度)倾斜并行进两个格子,结束它的横向移动,距离它的初始方向只有2格。
但是,目标计算机或产生的爆炸可能只关注范围,因此使用这些规则简化这些向量可能很重要。要找出任意两点之间的最短距离,只需简单地连接矢量并简化它们即可。
创建十六进制贴图并渲染它也很容易 创建一个十六进制对象作为具有属性的原点,Magnitude = 0,Vector = NULL,Label(可选)=一些字符串(我喜欢使它成为人类可读值),Name = 0(Magnitude和Vector的连接)和Exits = Array(你将填充6个节点,禁止虫洞或其他)。 以您选择制作地图中心的像素为中心绘制原点。 渲染十六进制。 为你的地图选择一个半径
Foreach Magnitude, ---用相邻矢量的每个组合填充环。有很多方法可以做到这一点,但最简单的方法是选择一个单独的矢量作为基础,然后在60度转弯的适当方向和轨道上运行幅度格。例如对于幅度3,从3E开始,然后转到3A,3B,3C,3D,3E,3F,计算每个十六进制为最后一个十六进制数与新的单个十六进制矢量的和。 ---在每个这些格子中,应用一些trig来计算中心像素应该相对于原点像素的位置,并渲染十六进制。希望可以帮助某人。 Hex地图摇滚。渲染他们有点尴尬。
谢谢,会做数学! – Timmy 2011-02-11 17:51:04
- 1. 绘制六角形
- 2. R - 绘制六角形棋盘格
- 3. 如何绘制一个完美的三角形六角形?
- 4. 在java中绘制六角形地图
- 5. 如何绘制/管理六角形网格?
- 6. 如何将一个六角形网格变成一个挤压的六角形网格?
- 7. 使用jQuery绘制六角形形状
- 8. 在内部绘制一个带有网格的三角形
- 9. 在Java中自动生成一个六角形网格
- 10. 在六角形网格中捕捉到最近的六角形中心
- 11. 在六角形网格内移动块?
- 12. 在Python中生成,填充和绘制六边形网格
- 13. 在六角形网格中创建六角形按钮的最佳方式
- 14. 绘制六角形使用Java错误
- 15. 从点云绘制一个3d三角形网格
- 16. 用UIBezierPath绘制六角形(点第一个)
- 17. 在GDI +中绘制一个三角形给定一个矩形
- 18. Mathematica - “三角测量” - 在图上绘制三角形网格
- 19. 在另一个角落绘制图形
- 20. 六角形网格tumblr css代码
- 21. 在Matlab中绘制三角形矩阵的网格
- 22. ios中的六角网格
- 23. 如何使用Polygon类在libGdx中绘制六角形图?
- 24. 如何在UICollectionView中绘制六角形图像
- 25. 在iOS中为Cocos2d绘制六角形瓷砖
- 26. 在MATLAB中绘制一个正方形网格
- 27. 平顶六角形六角形网格坐标以像素坐标
- 28. 在vb.net中绘制六边形
- 29. 绘制矩形和网格
- 30. 在WPF中绘制一个支持多角度的三角形
十六进制坐标,当然! :P – 2009-11-20 22:04:00