首页 / 浏览问题 / 组件GIS / 问题详情
Skeleton的构造是不是有什么要求
1EXP 2019年01月24日

使用产品:idesktop9c 操作系统:win7 x64
数据类型: 文件型
问题详细描述:我通过Model,Skeleton创建GeoModel3D,有些模型没有问题,有些模型出现比较怪异的问题:

体的顶点定义在红线的顶点上,但生成的体却离开了这些顶点。但是有些时候又是没有问题的,像下面的体

我的主要代码是:

Model model = new Model();
Skeleton skeleton = new Skeleton();
skeleton.Name = "solid" + i.ToString();//skeleton必须要有一个名字
skeleton.SetVertices(nodesPt.ToArray());
skeleton.VertexIndexes = indicesLast.ToArray();
skeleton.VertexColors = colors.ToArray();      
model.Add(skeleton);
GeoModel3D model3d = new GeoModel3D();//一个实体对应一个Model
model3d.Model = model;
model3d.IsLonLat = false;
model3d.Position = new Point3D(0, 0, 0);
recordset.AddNew(model3d);
recordset.Update();

我的顶点坐标数据没有位置上的次序,顶点索引由一系列3个一组的索引(构成三角面)组成;生成的结果有时是正确的,有时是错误的,不知道为什么

1个回答

您好!我觉得是您的顶点坐标没有位置上的次序,导致线上的点和体内部的点构成三角面,而没有与线上的点构成三角网,您给它设置位置次序看看呢。
3,352EXP 2019年01月24日
感谢回复,发现问题是:数据点坐标太大,而所有点的坐标跨度很小,精度有偏差而产生问题。现在把所有数据点的中心平移到原点,再用model.AddSkeleton(cm, skeleton.Name, matrix);平移回去解决问题。matrix是4*4平移矩阵
...