C++ 几何运算库源代码完全公开

Posted 车斗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 几何运算库源代码完全公开相关的知识,希望对你有一定的参考价值。

我的声明:

代号为:Sunny

自2007年1月1日起,我将分阶段完全公开我自己总结写出的C++几何运算库源代码。这些代码是我这些年的积累,来源具体也说不清楚了,这些代码都是经过我彻底精心动手打造的,每个字符。如果对您的工作有价值,请多发表评论和意见吧,同时也希望得到您的指点!
 
这些代码完全按C++思想设计和实现,可以应用在2D、3D商业图形程序中。代码中所有说明、注释都是英文。希望这个不算问题。
 
下面的版权信息必须放在代码文件的最前面。
License Information:
*********************************************************************
C++ Geometry Library Source Code
Date:        2007-1-1
Author: cheungmine – cheungmine@gmail.com
*********************************************************************
1 您可以使用这些代码,但不能声明拥有这些代码的版权。
2 所有源代码不可以出售以获得收益。
3 如果您在商业上应用这些代码,必须在您的产品中注明这部分的来源。
4 如果您使用了这些代码,我们视您为同意遵守此声明。
 
 
使用方法:
下面说明如何创建C++动态库,以使用这些源代码。
 
第1步:创建一个空的win32 dll 项目。(使用VS2003或VS2005创建win32项目,在[应用程序设置]中,[应用程序类型]选中:Dll( D);在附加选项中,选中:空项目( E))
 
第2步:将所有我发布的代号为:Sunny 的文件(.h和.cpp)添加到项目中。
 
第3步:编译以创建 geomlib.lib和geomlib.dll。
 
第4步:您可以在自己的程序中动态链接到geomlib.dll。如:
 
// testgeom.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
 
#include "../geomlib/geomlib.h"
// 如果是使用了动态链接, 不要忘记把geomlib.dll放到合适的地方!!!
#pragma comment(lib, "../geomlib/debug/geomlib.lib")
 
int _tmain( int argc, _TCHAR* argv[])
{
    G_POINT p(100,200);
    G_POINT3 p3(p);
 
    // 做任何你高兴的事情
 
    return 0;
}
============目前总结有============
点的算法:
1点的基本算法
2点与多边形的关系
3点与线的关系
4点集去掉重复的点
5点集构建三角网(三角剖分)
6点缓冲区
7点集拟合曲面的算法
 
线的算法:
1线和线的关系
2线和多边形的关系
3线集寻找所有交点
4线集去掉重复的线
5线集构建拓扑面
6线缓冲区
7线裁剪(被点、线、多边形剪切)
8点到线的距离
9最短路径的算法
 
多边形的算法:
1多边形冲突检测,多边形与多边形之间关系的算法
2多边形BSPTree
3多边形三角剖分(包括简单和复杂算法)
4多边形求凸壳
5多边形凸凹性
6多边形面积、周长、质心、最佳标注位置的算法
7多边形缓冲区
8多边形集组合成复合多边形
9多边形性质判断(是否有效,即不存在自相交的边)
10多边形之间的交、并、减等算法
11点到多边形或点到多边形所在面的距离
 
三角网的算法:
1三角网追踪等高线
2三角网插值格网
3格网追踪等高线
 
曲面的算法:
1曲面生成格网
2点到曲面的距离
3曲面上2点间最近距离的曲线
 
坐标变换的算法:
1地图坐标和屏幕坐标变换

以上是关于C++ 几何运算库源代码完全公开的主要内容,如果未能解决你的问题,请参考以下文章

向量的点乘与叉乘概念理解以及C++代码实现

从 c# 访问 C++ .lib 库

您可以在 C++ 中制作自定义运算符吗?

从 c# 调用 C++ 代码

C++中关系运算符的效率问题

如何围绕 C++ 代码编写 C 包装器以公开类方法