stl模型布尔运算(DIY)
开发三维模型布尔运算的图形软件因其难度较大,具挑战性而激发了诸多有志者为之努力不懈,但也让许多尝试者怯步。本文推荐一款几何运算库,调用由(wsxdll)几何运算库(no free of charge)提供的库函数可以使开发三维模型布尔运算的图形软件变得相对容易一些。
◆(wsxdll)几何运算库可以提供具有如下功能的库函数
▲对(stl)格式和(Obj)格式的三维模型实施布尔运算。
▲∵对三维模型实施布尔运算时,需要对二维几何图形和三维几何体实施诸多的几何运算
∴(wsxdll)几何运算库中还包含了具备如下功能的库函数
▼对二维多边形实施布尔运算
▼三角剖分二维多边形
▼计算二个几何体的交线(环)
▼计算二个三角形的交线
▼用一个平面或曲面剖切一个几何体
…………
◆如何使用wsxdll几何运算库的库函数wd0200_BlnOp(…)
wsxdll库函数需在一个编程环境,如VC++,下使用。一份wsxdll几何运算库包含二个文件,(wsxdll.dll)和(wsxdll.lib)。下面以VC++6.0为例说明如何使用wsxdll几何运算库提供的布尔运算函数wd0200_BlnOp(…)。
选择File->New->Project,然后选择MFC AppWizard(exe),选择一个名字(如,Demo_wsxdll),然后按OK。选(Single Document),其余的一概选默认,最后选择Finish。这样,一个名为(Demo_wsxdll)的MFC工程就被创建好了。接下来就是给此(Demo_wsxdll) 工程加添界面菜单和编写代码。
▲把二个文件,(wsxdll.dll)和(wsxdll.lib),拷入到(Demo_wsxdll)文件夹中
▲创建一个下拉式菜单:Demo→BooleanOperation
创建一个由菜单(Demo→Bln Op)触发的函数:void CDemo_wsxdllView::OnMenuitem_001()
▲加添以下代码,为编写函数OnMenuitem_001()的代码作铺垫
▼在文件(stdafx.h)的末尾加上
#define c_Dim0154a 11//
#definec_Dim0154b 26//
#definec_Dim0106 200//
▼在文件(Demo_wsxdllView.cpp)头部加上
#include <locale.h>
#include<fstream.h>//(盘录,装载)硬盘文件需此头文件
▼在文件(Demo_wsxdllView.cpp)中定义如下(4)个函数
void CDemo_wsxdllDoc::Save_Path(CStringsPath_ck,CString sFileType_ck,CString sPath_stlModel)
{//【函数功能】
CStringFileName=sPath_ck+"Path"+sFileType_ck;
CStringstr_Line;//
CStdioFileFile;
File.Open(FileName,CFile::modeCreate| CFile::modeWrite | CFile::typeText);
File.WriteString(sPath_ck);//行写字符串(sPath_ck)于(txt)目标文件(FileName),
//注:字符串(strLine)未带换行符('\n')
File.WriteString("\n");//
//
File.WriteString(sFileType_ck);//行写字符串(sPath_ck)于(txt)目标文件(FileName),
//注:字符串(strLine)未带换行符('\n')
File.WriteString("\n");//
//
File.WriteString(sPath_stlModel);//行写字符串(sPath_ck)于(txt)目标文件(FileName),
//注:字符串(strLine)未带换行符('\n')
File.WriteString("\n");//
//
File.Close();//关闭源文件()
//
return;//
}
CString CDemo_wsxdllDoc::f006_392i_IntToString(intValue)