当前位置: 首页 > 知识库问答 >
问题:

平顶六角六角网格坐标到像素坐标

明松
2023-03-14

我使用的是平顶六边形网格(按照这里列出的手册http://www.redblobgames.com/grids/hexagons/)。

当然,在平顶的情况下,x坐标可以用作x像素坐标。因此,从立方体坐标计算X像素坐标相对容易。假设$this->hexsize是十六进制的总宽度,$cubecoordinate是x、y、z坐标数组,则x像素坐标为:

$pixelCoordinate['x'] = $this->hexSize * $cubeCoordinate['x'] * 3/4;

我不知道如何计算y像素坐标。相邻HEX之间的高度应不足等于$this->hexsize。但是如何基于立方体坐标计算偏移量呢?

共有1个答案

佴保臣
2023-03-14

我已经算出来了,在这里列出的六边形网格坐标到像素坐标的等程中插入衍射变量。

最后,可以使用以下代码计算平顶六边形网格中的立方体坐标:

   /* 
* Changes cube coordinates into offset one
        */
        public function coordinates_CubetoOffset($cube)
        {

            $return['x'] = $this->hexSize * $cube['x'] * 3/4;
            $return['y'] = sqrt(3)/2 * $this->hexSize * ($cube['x']/2 + $cube['y']);


            return $return;
        }
 类似资料:
  • 改变这个.. 对此..

  • 我正在搜索am算法来生成一个六边形蜂窝,就像这样使用轴向坐标: 我提出这个问题只是为了分享我的解决方案。

  • 问题内容: 我有一个来自3轴加速度计(XYZ)的300万个数据点的数组,我想向该数组添加3列,其中包含等效的球坐标(r,theta,phi)。以下代码有效,但似乎太慢了。我该如何做得更好? 问题答案: 这类似于Justin Peel的答案,但是使用just并利用其内置的矢量化功能: 请注意,正如注释中所建议,我已经从您的原始功能 更改了仰角的定义 。在使用进行测试的机器上,时间从76秒缩短到3.3

  • 我被一个似乎很容易解决的问题所困扰,但我似乎找不出正确的公式。 我有一个立方体坐标系中六边形群的列表。我知道群的立方体坐标,但我需要计算给定群中一个小六边形的“全局”坐标。 例如,在下图中,我知道和的坐标。如果每个组都有相同的半径(在本例中半径为1),并且它们之间不重叠(让我们把它看作是从0、0、0开始的组的平铺,从而创建一个十六进制网格),那么我如何计算GroupB中心平铺的坐标呢? 任何帮助都

  • 我试图写一个函数,它以笛卡尔坐标系中的x和y值作为输入,并输出极坐标和三角坐标形式。我希望输出包含指数和正弦/余弦,而不是实际值。例如,如果笛卡尔函数是z=1i,我希望函数输出z=sqrt(2)e^(ipi/4)和z=sqrt(2)(cos(pi/4)Isin(pi/4)。我该怎么做? 函数坐标(x, y) r=sqrt(x.^2 y.^2); θ=atan(y./x); Polarcoord=r

  • 首先我们简要回归下线性回归的一般形式: $$h_mathbf{theta}(mathbf{X}) = mathbf{Xtheta}$$ 需要极小化的损失函数是: $$J(mathbftheta) = frac{1}{2}(mathbf{Xtheta} - mathbf{Y})^T(mathbf{Xtheta} - mathbf{Y})$$ 如果用梯度下降法求解,则每一轮θ迭代的表达式是: $$ma