gpt4 book ai didi

c# - 组合 3 个 float ?

转载 作者:太空宇宙 更新时间:2023-11-03 22:02:39 24 4
gpt4 key购买 nike

我正在处理巨大的 3D 模型,我需要将它们写入文件以备后用。我的磁盘空间有限,所以我需要找到一种节省空间的方法。

对于模型中的每个顶点,我想以某种方式“组合”X、Y 和 Z 值( float ),然后能够在加载数据时破译它们。

float 最多只有 3 位精度(即 3.456)。

起初我的想法是在 3 个 float 时获取平均值,然后有另一个值我可以以某种方式从中提取 X 和 Y 值,然后我可以从平均值中获取 Z 值。但是在尝试之后我无法让它正常工作。

我的目标是能够以某种方式将 3 个 float 组合成一个整数,但我认为这不可行。

有没有人知道我该怎么做?

谢谢! ;)

最佳答案

如果数字确实具有 3 位精度(例如 3.45),并且所有值都在 0 到 9.99 之间,那么您可以轻松地将它们放入一个 32 位整数中:

int value =
(int)Math.Round(x * 100.0) * 1000000 +
(int)Math.Round(y * 100.0) * 1000 +
(int)Math.Round(z * 100.0);

如果数字有 4 位精度(例如 3.456),那么您需要更多位,即至少 40。如果值可以大于 9.99,您需要另外六位来描述小数点分隔符的位置.

关于c# - 组合 3 个 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9550492/

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