麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

关于MapGIS K9 TDE下绘制正方体的程序一些说明和解释

如果你看过之前的MapGIS K9三维TDE平台插件开发第一个插件程序(新手入门必看),会发现我在分享一个MapGIS K9 TDE下绘制正方体的程序里面的代码是基于前者的代码改写的,所以这里也不啰嗦了,直接讲MapGIS K9 TDE下绘制正方体的代码实现。

其实绘制的代码是这个函数完成的:

void RecTangle::buildRec(Real Cir, Real zmin, Real zmax, const Vector3& offset, ColourValue col, SuperMesh& superMesh)
{
    SingleMesh *temMesh=superMesh.createSingleMesh("mesh");
    //创建正方体
    //创建8个点
    temMesh->positionArray.Add(offset+getPoint(Radian(Degree(45)),Cir,zmin));
    temMesh->positionArray.Add(offset+getPoint(Radian(Degree(45)),Cir,zmax));
    temMesh->positionArray.Add(offset+getPoint(Radian(Degree(135)),Cir,zmin));
    temMesh->positionArray.Add(offset+getPoint(Radian(Degree(135)),Cir,zmax));
    temMesh->positionArray.Add(offset+getPoint(Radian(Degree(225)),Cir,zmin));
    temMesh->positionArray.Add(offset+getPoint(Radian(Degree(225)),Cir,zmax));
    temMesh->positionArray.Add(offset+getPoint(Radian(Degree(-45)),Cir,zmin));
    temMesh->positionArray.Add(offset+getPoint(Radian(Degree(-45)),Cir,zmax));
    //temMesh->normalArray.Add()
//将点连起来形成面
temMesh->triangleArray.Add(equal(3,1,0));
temMesh->triangleArray.Add(equal(0,2,3));
temMesh->triangleArray.Add(equal(0,1,7));
temMesh->triangleArray.Add(equal(7,6,0));
temMesh->triangleArray.Add(equal(2,0,6));
temMesh->triangleArray.Add(equal(6,4,2));

temMesh->triangleArray.Add(equal(5,3,2));
temMesh->triangleArray.Add(equal(2,4,5));
temMesh->triangleArray.Add(equal(5,4,6));
temMesh->triangleArray.Add(equal(6,7,5));
temMesh->triangleArray.Add(equal(5,1,3));
temMesh->triangleArray.Add(equal(5,7,1));

temMesh->operationType=RenderOperation::OT_TRIANGLE_LIST;//
temMesh->materialName="mydeom";

}

其实这个demo是我参考MapGIS K9三维TDE平台实现动态光标效果里面的demo写成的,所以当时在没有注释的情况下,我看的那个demo也是稀里糊涂的,不过后来略微看懂了一二,于是就有了上篇文章的demo,这里我也稍微解释下,解释的不好,还请见谅

关于创建的8个点,众所周知,正方体有8的顶点(小编白痴了),所以在平面直角坐标系的基础上绘制一个正方形,这个正方形的在Z轴的高度是一致的。同时在这个正方形的正上方绘制一个一模一样的正方形,这样就形成了一个正方体。下面是一张简易的示意图。

PS:注意,这里面的点的序号并不是我规定的,而是根据你建立的顺序而定的,MapGIS K9三维TDE平台会根据你建立的顺序自动给点编号,默认从0开始编号。

关于后面的将点连接成面的代码,这里要提醒的就是关于面的可见与不可见,我在之前的文章中已经讲过,可以看MapGIS K9 三维TDE平台中实体的可见与不可见。这里给一个简单的示意图吧:

麻辣GIS-Sailor
作者:
GIS爱好者,学GIS,更爱玩GIS。
微博关注
手机阅读
赞赏支持
手机阅读
微信捐助麻辣GIS
微信打赏
支付宝捐助麻辣GIS
支付宝打赏

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

3.如果本文对您有所帮助,请您对我们团队进行 打赏捐助让我们在传播3S的路上可以走得更远,不胜感激。PS:如果你是学生党,请优先把经费用于购买学习资料 以及 与小哥哥/小姐姐约会上:-)

如您有疑问,可在文末留言,或到麻辣GIS QQ群中提问。

QQ群(一):291616564 加入QQ群

QQ群(二):166408035 加入QQ群

QQ群(三):627853279 加入QQ群

QQ群(四):436386604 加入QQ群

QQ群(五):606176554 加入QQ群

QQ群(六):946178380 加入QQ群

QQ群(七):861271808 加入QQ群

新疆互助群:910717627 加入QQ群

微信公众号:malagis,扫描右边二维码直接关注。

发表评论