gpt4 book ai didi

用于存储 3 维 float 的 C++ 数据结构

转载 作者:搜寻专家 更新时间:2023-10-31 02:00:39 25 4
gpt4 key购买 nike

我已经实现了一个 3D 奇异吸引子浏览器,它提供 0-100 范围内的浮点 XYZ 输出,我现在想根据两个连续输出之间的位移为其实现一个着色函数。

我不确定用于存储每个点的颜色值的数据结构,使用 3D 数组我仅限于四舍五入到最接近的 int,这给出了非常粗糙的配色方案。

我隐约知道八叉树,它们适合这种情况吗?

编辑:多一点解释:

为了生成我重复运行的点:

(a,b,c,d 是 -3 到 3 范围内的随机 float )

x = x2;
y = y2;
z = z2;

x2 = sin(a * y) - z * cos(b * x);
y2 = z2 * sin(c * x) - cos(d * y);
z2 = sin(x);

parr[i][0]=x;
parr[i][1]=y;
parr[i][2]=z;

每次运行都会为每个轴生成新的位置,以便为渲染着色我需要计算两个连续结果之间的距离,如果我只是通过每次运行之间的距离计算来执行此操作,那么颜色会在平衡时来回淡化,所以我需要为每个点取运行平均值并存储它,使用 3dimenrsionl 数组的着色太粗糙,我正在寻找有关如何以更小的增量存储值的建议。

最佳答案

也许你可以放弃 2-dim 数组并使用 1-dim 数组

struct ColoredPoint {

int x;
int y;
int z;

float color;
};

这样代码看起来像

 ...
parr[i].x = x;
parr[i].y = y;
parr[i].z = z;
parr[i].color = some_computed_color;

(您可能还希望封装字段并将 class ColoredPoint 与访问方法一起使用)

关于用于存储 3 维 float 的 C++ 数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1737955/

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