IFloatArray是api中用于存储数组的一个接口。
IFloatArray如何构成?举个栗子就明白了。如图:

这个点的FloatArray构成就是x=FloatArray.get(1),y=FloatArray.get(2),y=FloatArray.get(3),
如果你想遍历所有的节点,就必须这样操作:
List<IPoint> pts = new List<IPoint>();
IFloatArray arrayVector = drawPrimitive.VertexArray;
for (int n = 0; n < arrayVector.Length;)
{
IPoint pt = ......;
pt.X = arrayVector.Get(n);
pt.Y = arrayVector.Get(n + 1);
pt.Z = arrayVector.Get(n + 2);
pts.Add(pt);
n = n + 3;
}IFloatArray用作TexcoordArray存储时,2个数值来表达纹理坐标,如:
List<IPoint> texPts = new List<IPoint>();
IFloatArray arrayVector = drawPrimitive.TexcoordArray;
for (int n = 0; n < arrayVector.Length;)
{
IPoint pt = ......;
pt.X = arrayVector.Get(n);
pt.Y = arrayVector.Get(n + 1);
texPts.Add(pt);
n = n + 2;
}注意:
图像上的位置长宽两个方向都是0到1的长度,比如对应图像最中间的位置,相应的纹理坐标就是0.5,0.5;

所谓贴图,就是将在模型的某个面上的节点,设置合适的纹理坐标。看上图就很清楚了,给模型上每个点设置合适的TexcoordArray(设置IDrawPrimitive.TexcoordArray)。
特别注意一下,这个TexcoordArray(2个数)顺序与VertexArray(3个数)顺序是一致的。

本文介绍了IFloatArray接口在存储顶点和纹理坐标中的使用方法。通过具体示例展示了如何利用IFloatArray遍历和获取顶点数组及纹理坐标数组的数据。
1万+

被折叠的 条评论
为什么被折叠?



