我的任务是从二进制 little endian .ply 文件中读取顶点数据。问题是我找不到从 end_header 行之后正确提取数据的方法。
层文件:
ply
format binary_little_endian 1.0
element vertex 240753
property float x
property float y
property float z
property float nx
property float ny
property float nz
element face 477808
end_header
(after the end header there is a A0 byte indicating the new line then, ...)
AC76A0C04301644163416a42 ...
即使是第一次浮动,我也无法正确识别。如果我使用浮点的 IEE754 表示转换前 4 个字节,结果是 -3.5047936775001176e-12,但是前四个字节(= 第一个顶点的第一个 x 坐标)应该是 -5.01449(根据从二进制到 ascii ply 文件的 meshlab 转换)。
我正在使用 c++ fread, fseek, ...
我尝试每 4 个字节进行一次字节序交换,但结果也很糟糕。
我认为我以错误的方式提取字节。