生成三角/六角坐标 (xyz)

2024-03-15

我试图提出一个迭代函数来生成六角形网格的 xyz 坐标。使用起始六边形位置(为简单起见,假设为 0,0,0),我想计算每个连续的六边形“环”的坐标,如下所示:

到目前为止,我所能想到的就是这个(javascript 中的示例):

var radius = 3
var xyz = [0,0,0];

// for each ring
for (var i = 0; i < radius; i++) {
    var tpRing = i*6;
    var tpVect = tpRing/3;
    // for each vector of ring
    for (var j = 0; j < 3; j++) {
        // for each tile in vector
        for(var k = 0; k < tpVect; k++) {
            xyz[0] = ???;
            xyz[1] = ???;
            xyz[2] = ???;
            console.log(xyz);
        }
    }
}

我知道每个环比前一个环多包含 6 个点,并且每个 120° 向量从中心开始每一步都包含一个附加点。我也知道x + y + z = 0适用于所有瓷砖。但是如何生成遵循以下顺序的坐标列表呢?

    0, 0, 0

    0,-1, 1
    1,-1, 0
    1, 0,-1
    0, 1,-1
   -1, 1, 0
   -1, 0, 1

    0,-2, 2
    1,-2, 1
    2,-2, 0
    2,-1,-1
    2, 0,-2
    1, 1,-2
    0, 2,-2
   -1, 2,-1
   -2, 2, 0
   -2, 1, 1
   -2, 0, 2
   -1,-1, 2

不仅是x + y + z = 0,但 x、y 和 z 的绝对值等于环半径的两倍。这应该足以识别每个连续环上的每个六边形:

var radius = 4;
for(var i = 0; i < radius; i++)
{
    for(var j = -i; j <= i; j++)
    for(var k = -i; k <= i; k++)
    for(var l = -i; l <= i; l++)
        if(Math.abs(j) + Math.abs(k) + Math.abs(l) == i*2 && j + k + l == 0)
            console.log(j + "," + k + "," + l);
    console.log("");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

生成三角/六角坐标 (xyz) 的相关文章

  • Java中如何对整数除法进行四舍五入并得到int结果? [复制]

    这个问题在这里已经有答案了 我刚刚写了一个小方法来计算手机短信的页数 我没有选择使用Math ceil 老实说 它看起来很丑陋 这是我的代码 public class Main param args the command line arg
  • 从向量中删除向量::end

    当我使用时它工作正常吗 什么也不做 vector
  • 错误 C2039:“find”:不是“std”的成员

    我刚刚遇到一个奇怪的错误 它说 find 不是 std 的成员 错误 C2039 find 不是 std 的成员 错误 C3861 查找 未找到标识符 基本上 我想查找是否可以在向量中找到字符串 知道为什么会发生这种情况吗 代码帮助告诉我
  • 按度数在圆上找到一个点?

    假设我们有一个 100x100 坐标系 如下所示 0 0 是它的左上角 50 50 是它的中心点 100 100 是它的右下角 等等 现在我们需要从中心向外画一条线 我们知道线的角度 但需要计算其终点的坐标 您认为最好的方法是什么 例如 如
  • 反转二进制网络

    如何反转二元方程 以便找到哪些输入将产生给定的输出 Example Inputs i0 through i8 Outputs o0 through o8 Operators XOR AND 二元方程 1 i0 1 i1 0 i2 1 i3
  • 小数除以小数并得到零

    为什么当我这样做时 select CAST 1 AS DECIMAL 38 28 CAST 1625625 AS DECIMAL 38 28 我得到 0 吗 但是当我得到 0 时 select CAST 1 AS DECIMAL 20 10
  • 找出圆周上像素坐标的算法

    如果我知道圆心 圆半径和垂直角的像素坐标 如何找出圆圆周上一定角度的像素值 基本上 我试图在不同的时间绘制时钟的指针 1点 2点等 Let h是浮点数形式的小时 h 2 25将是 02 15 等 在 0 到 12 之间 cX cY 是中心的
  • 基于时间的算法评分

    我们希望创建一种评分算法 在更短的时间内获得更高的分数 在更长的时间内获得更少的分数 需要注意的是 没有实际范围 因此时间范围可以从 100 毫秒到长达 10 分钟或更长时间 点范围为 0 到 50 谢谢你的帮助 你可以简单地把它变成一个线
  • 采用 std::vector 或 std::array 的模板函数

    我有一个函数 当前接受 2 个向量 其中可以包含任何普通的旧数据 template
  • 如何在 switch 语句中将向量作为参数传递

    我对问题的谷歌搜索没有返回有用的结果和文档 switch没有告诉我如何做 所以我希望我能在这里得到答案 假设我有一个向量 cases lt c one two three 我想使用 switch 语句并将这些元素作为 switch 语句的参
  • C 埃及分数

    古埃及人仅使用以下形式的分数1 n因此任何其他分数都必须表示为这些单位分数的总和 而且 所有单位分数都是不同的 在C或Java中使任何分数成为埃及分数 总和越少越好 的好方法是什么 可以使用什么算法 分支定界 a 例如 3 4 1 2 1
  • 从向量中删除元素在 R 中出现的时间量

    我想从一个向量中删除元素在另一个向量中出现的时间 就像我要减去它们一样 鉴于我想要删除的元素向量中的每个元素也存在于我想要从中删除的主向量中 a lt c A B B C C C b lt c A B C C a a in b return
  • 两个整数乘积的模

    我必须找到c c a b mod m a b c m 是 32 位整数 但 a b 可以超过 32 位 我正在尝试找出一种计算 c 的方法 而不使用 long 或任何 gt 32 位的数据类型 有任何想法吗 如果m是质数 事情可以简化吗 注
  • 在网络上编写数学方程的最佳方法是什么?

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 我正在开发一个与数学相关的网页 并正在寻找一种将数学方程轻松写入网页的解决方案 目前我可以使用
  • 在 Android 中将 LatLng 偏移一定量的米

    我有一个LatLng对象 我想将它的坐标向东移动 500 米 我找不到为此的内置方法 我见过https gis stackexchange com a 2964 https gis stackexchange com a 2964但我的结果
  • 如何四舍五入到一半,始终为正方向? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何实现以下舍入 0 0126083
  • 在另一个向量中定位子向量

    我有一个vector
  • 选择一组数字以达到最小总数的算法

    给定 一组数字n 1 n 2 n 3 n x 还有一个数字M 我想找到最好的组合 n a n b n c n gt M 该组合应达到达到或超过 M 所需的最小值 没有其他组合可以提供更好的结果 将在 PHP 中执行此操作 因此可以使用 PH
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • 如果数字小于 10,则显示前导零 [重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 相当于 printf string format https stackoverflow com questions 610406 javascript equivalent t

随机推荐

  • 为什么 `/\:/u` 会抛出“无效转义”错误? [复制]

    这个问题在这里已经有答案了 我有这样的代码 url match https ui ESLint 说Parsing error Invalid regular expression https Invalid escape 我不明白为什么这个
  • std::复制二维数组

    您好 我正在尝试使用 std copy 函数来复制二维数组 我想知道是否可以这样做 我不断收到 分段错误 但数组复制正确 我尝试减去一些并添加一些到复制功能的最终情况 但没有成功 const int rows 3 const int col
  • Python中如何获取当前执行文件的路径? [复制]

    这个问题在这里已经有答案了 有没有普遍的Python中的方法 找出当前正在执行的文件的路径 失败的方法 path os path abspath os path dirname sys argv 0 如果您从另一个目录中的另一个 Pytho
  • Django 中的条件登录重定向

    我知道关于LOGIN REDIRECT URL我知道
  • 如何以 CSV、C、Python、MatLab、NumPy 样式格式打印 cv::Mat

    我有一个 OpenCV 矩阵 我想以问题中提到的任何样式打印它 cv Mat1b image cv imread input name cv IMREAD GRAYSCALE std cout lt lt format in c style
  • Xna 绘制顺序无法正常工作

    我有一个 Texture2D 的二维数组 它在该数组中保存地图的不同部分 不过 我有一个问题 当我运行游戏时 地图绘制正确 但由于某种原因 数组 0 0 纹理重叠了我的所有纹理 包括我的玩家纹理和鼠标纹理 当我的鼠标和玩家纹理正确重叠地图时
  • 如何在 couchdb 中编写通配符搜索查询,其中名称如“a%”

    如何在 couchdb 中编写通配符搜索 我想在 sql 中编写与 LIKE 相同的查询 请帮助我 name arun surname mr name balu surname tp 我需要列出所有以 a 开头的名称 Thanks 在 co
  • 有关对齐的问题

    在函数内的局部作用域中声明时将所有相同类型的变量分组在一起是一个好习惯吗 如果是 为什么 它能解决内存对齐问题吗 我认为这对我 20 年前使用的 VAX C 编译器很重要 但对任何现代编译器都没有影响 这是not可以安全地假设局部变量将按任
  • 在 LISP 中实现基本库函数(手动)

    有什么方法可以定义函数my list my cons my append其执行类似的功能list cons and append分别 否则哪里可以找到这些功能的实现呢 Thanks 对于my list和my append 解决方案是 def
  • 在 Windows 上部署 QML 应用程序的正确方法

    最近 我需要为我的 Qt QML 应用程序创建一个部署包 这个过程非常繁琐 因为您需要手动查找并复制依赖项 正如 官方 中所述Qt Wiki https wiki qt io Deploy an Application on Windows
  • 如何将动态创建的文本字段值发送到 php 邮件

    input type radio click function val this val container html content val this attr count var i 1 for i 0 i lt val i conte
  • 可以在 Oracle 的 SELECT 中执行自动编号序列吗?

    我需要在 Oracle 中完成一项任务 但我不知道如何才能做到这一点 好的 当我动态定义自动编号序列时 我需要执行 SELECT 例如 Select autonumber 1 9000 as auto from some table 结果是
  • ng2-ckeditor 404(未找到)

    我使用 cmd npm install ng2 ckeditor 添加了 ng2 CKEDitor 安装得很好 有一个例子https www npmjs com package ng2 ckeditor https www npmjs co
  • 无法使用 psycopg2 连接到 Postgres 容器

    我有以下设置 容器中的一个简单 Flask 应用程序 Postgres 容器 使用以下 Dockerfile FROM python alpine3 7 COPY app WORKDIR app RUN apk update RUN apk
  • Eclipse 调试配置中的默认 VM 参数?

    当我使用 TDD 实现新功能时 我经常使用快捷方式Shift Alt D T仅运行我当前正在处理的 jUnit 测试用例 而不是整个测试套件 这需要几分钟 这将为当前 Java 源创建一个新的调试配置并立即运行它 现在我想在启用断言的情况下
  • AutoCompleteTextView 未完成括号内的单词

    我已经实施了AutoCompleteTextView如下 MainActivity java public static String myData new String Africa AF America AFM Apple AMP te
  • 将自定义数据嵌入到不会被 ld.so 映射的 ELF 文件中

    我有一个 500MB 的文件 其中包含一些自定义数据 即 ZIP 存档 我想将它嵌入到我的 ELF 可执行文件中 这样当我分发 ELF 文件时 我将只能发送 1 个文件而不是 2 个文件 问题是我不希望在我的应用程序启动时操作系统自动加载这
  • 在 Entity Framework 4.0 中批处理 DB 命令

    我当前的项目需要每天与外部系统同步 同步基于复杂的导入文件结构 该结构通过广泛的业务逻辑进行解析和处理 由于业务逻辑的原因 我们决定在 NET 代码中进行此操作并重用现有的 BL 组件 而不是在存储过程或集成服务中编写相同的逻辑 BL 层位
  • .Net 中的单元测试属性?

    我正在开发一个我想以开源方式发布的库 我已经开始为代码编写测试 我想知道如何测试 Net 对象中的属性 可以说我有以下内容 public class Person region variables private string name S
  • 生成三角/六角坐标 (xyz)

    我试图提出一个迭代函数来生成六角形网格的 xyz 坐标 使用起始六边形位置 为简单起见 假设为 0 0 0 我想计算每个连续的六边形 环 的坐标 如下所示 到目前为止 我所能想到的就是这个 javascript 中的示例 var radiu