gpt4 book ai didi

javascript - 从轴坐标动态创建具有整数坐标的有限 n 维坐标系

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:56:37 26 4
gpt4 key购买 nike

我试图通过首先创建轴坐标在有限的 n 维坐标系中动态创建位置列表。系统只有整数作为坐标值。轴向坐标是 AxCrd 对象。 AxCrd 对象有两个属性:

  1. AxCrd.dim 是坐标维度的句柄或名称。例如,“x”或“y”。
  2. AxCrd.crd 是坐标值。它是一个整数。例如,-4 或 3。

我尝试编写一个函数,它接受所有生成的 AxCrd 对象作为输入,并输出我试图创建为 Crd 对象的 n 维空间中所有位置的列表。 Crd 对象有两个属性:

  1. Crd.dims 是一个包含坐标的所有维度句柄的数组。这个数组的长度为n,即等于维数。

  2. Crd.crds 是一个数组,包含上述维度的所有坐标值。这个数组的顺序很重要,因为坐标的维度应该具有与坐标值相同的元素编号。 IE。如果维度“z”是第二个元素,则 crds[2] 是维度“z”的坐标值。

例如,假设我使用这些构造函数:

function AxCrd(dim,crd) { this.dim = dim, this.crd = crd }
function Crd(dims,crds) { this.dims = dims, this.crds = crds }

在我的实际用途中,大部分维度有九个值:四个负值、四个正值和一个零值。但为简洁起见,假设我有三个维度,以便:

var input = [];
input.push(new AxCrd("x", -1));
input.push(new AxCrd("x", 1));
input.push(new AxCrd("y", -1));
input.push(new AxCrd("y", 1));
input.push(new AxCrd("z", -1));
input.push(new AxCrd("z", 1));
input.push(new AxCrd("d", -1));
input.push(new AxCrd("d", 1));

如您所见,存在三个维度,每个维度只有两个坐标值。我正在尝试编写一个函数,根据上述输入,它会像这样创建新的 Crd 对象:

var ret = [];
ret.push(new Crd(["x","y","z","d"],[-1,-1,-1,-1]));
ret.push(new Crd(["x","y","z","d"],[ 1,-1,-1,-1]));
ret.push(new Crd(["x","y","z","d"],[-1, 1,-1,-1]));
ret.push(new Crd(["x","y","z","d"],[ 1, 1,-1,-1]));
ret.push(new Crd(["x","y","z","d"],[-1,-1, 1,-1]));
ret.push(new Crd(["x","y","z","d"],[ 1,-1, 1,-1]));
ret.push(new Crd(["x","y","z","d"],[-1, 1, 1,-1]));
ret.push(new Crd(["x","y","z","d"],[ 1, 1, 1,-1]));
ret.push(new Crd(["x","y","z","d"],[-1,-1,-1, 1]));
ret.push(new Crd(["x","y","z","d"],[ 1,-1,-1, 1]));
ret.push(new Crd(["x","y","z","d"],[-1, 1,-1, 1]));
ret.push(new Crd(["x","y","z","d"],[ 1, 1,-1, 1]));
ret.push(new Crd(["x","y","z","d"],[-1,-1, 1, 1]));
ret.push(new Crd(["x","y","z","d"],[ 1,-1, 1, 1]));
ret.push(new Crd(["x","y","z","d"],[-1, 1, 1, 1]));
ret.push(new Crd(["x","y","z","d"],[ 1, 1, 1, 1]));

我如何为 n 维空间执行此操作?

最佳答案

如果我理解你的问题,你需要一个所有维度名称到它们索引的映射(称之为 dim_map 应该是 dim_map['x'] = 0; dim_map['y' ] = 1;...).然后,当您进行转换时,您将键用作 dims,查找 index = dim_map[AxCrd.dim] 的索引并将该值分配给相应的元素(Crd.crds[index] = AxCrd.crd).

我不完全确定这就是您想要的,因为您的示例似乎令人困惑。我不确定我为什么要为每个 AxCrd 构建两个 Crd,或者为什么其他一些值似乎会发生变化。

关于javascript - 从轴坐标动态创建具有整数坐标的有限 n 维坐标系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34635283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com