基于半边数据结构(翼边数据结构)的Eular操作回实现扫成 通过OpenGL进行CAD实体建模 经测试可直接运行
话说,今天重装电脑程序,把VS2010重装以后,运行了几个之前写的小程序测试了一下.不经意间,我发现2年前自己参考着资料写的一个Sweep扫成程序,当时程序能够跑,但是和翼边数据结构的含义有所不同,当时费了好大的劲也没弄明白其中一个指针的处理怎么会是那个样子的,现在时间过去两年了,自己竟然还是没有抽出时间来将其弄明白,真是惭愧.也许我当时坚持查阅资料仔细研究就不会是这个样子了,而且有些东西一旦放下,再抽出整块的时间去理解它是不现实的。现在2年过去了,如果不是重装电脑,自己早忘了有这么一回事情。这些年自己在技术方面没有多少成长不怪其他,一切源于自己没有坚持钻研和探索的精神.所以遇到挫折了不要一味的怪罪环境,最主要的还是自己不够努力.下面把程序的结果贴出来,后面还要仔细再研究一下.
下面是我实现程序的例子,第一幅图是一个线框模型,第二幅图是另一个实体模型。
这个程序是在一门选修课(忘了叫什么名字了,大概叫CAD实体建模之类的)上老师布置的大程作业,当时为了做出来费了好大的力气,现在看来这只不过是个要求通过欧拉操作来实现扫成的小程序,而且算法的思想很简单,只是需要用到实体建模中的名为翼边数据结构(又叫,半边数据结构)的东西,和一个欧拉公式。我看过网络上的一些同样的介绍半边数据结构的东西,他们写的也算比较详细,但是有个很致命的问题,那就是他们只写出了核心代码,没有具体实现的环境。对于一个编程初学者而言,你光给出核心代码,他们是没有能力把这个程序给搭建起来的,因为程序不仅涉及到核心数据结构和算法,通过MFC实现鼠标点击和画图也够一般初学者头疼脑大的了。
为了方便初学者学习,也为了分享自己的一些心得,我下面不仅给出了核心代码,而且给出了整个实现程序的源代码。想学习实体建模的同学能够通过这个程序学到很多东西,对于那些想要交图形学的代码课程作业的同学来说,你也可以直接把这个交上去了吆,因为这个代码我已经测试过了,没有任何问题,可以直接运行。当然,最好你是为了学习需要,而不是为了直接down下来应付老师,而且前提是你要部署好OpenGl的库。具体的下载链接在下面。
如果运行过程中有什么问题,欢迎留言讨论。如果大家觉得此文对您有帮助,麻烦你“顶”一下,予人玫瑰,手有余香~~
运行的环境和平台是:
Windows 7, visual studio 2010
刚装了win7和VS2010。配置OpenGL的方法如下。
glut下载地址:
http://download.****.net/detail/daringpig/4375605
glut.h ---> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl
glut.dll,glut32.dll ---> C:\Windows\SysWOW64 (windows7 64位操作系统)
---> C:\Windows\System32 (windows7 32位操作系统)
glut.lib,glut32.lib ---> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib
核心数据结构采用半边数据结构实现,具体的实现功能是:
通过绘制一个基本的面,然后通过该面通过指定的向量和距离就可以扫成为一个体。
具体的核心代码如下:
OpenGL库和Eular的源代码下载地址为:
http://download.****.net/detail/daringpig/4375605
如果运行过程中有什么问题,欢迎留言讨论。
http://download.****.net/detail/daringpig/4375599
如果大家觉得此文对您有帮助,麻烦你“顶”一下,谢谢
- 1楼daringpig3天前 15:10
- mm