计算几何与计算机图形学方面的一些资源及源代码

This page lists “small” pieces of geometric software available on the Internet. Most of the software is available free of charge. Unless otherwise specified, C or C++ source code is available for all programs. Software libraries and collections and programs that can be run interactively over the web are listed on separate web pages. Caveat Surfor! I can’t make any claims about the usefulness or quality of the programs listed here. I don’t have the time or equipment to try them all. If you have experience with any of these programs, either positive or negative, please tell me about it.

The programs on this page are divided into several categories, some of which are divided into further sub-categories. (Eventually, each category will get its own separate web page.) Each program is listed only once, but I’ve provided cross-links between overlapping categories, and I’ve tried to arrange similar categories near each other.

Each category also includes links to relevant pages in Nina Amenta’s comprehensive Directory of Computational Geometry Software, which I strongly encourage you to visit! Items marked [NEW!] have been recently added or modified.


Robust low-level primitives

Avoid roundoff and precision errors! Use this code instead of naïve floating point or integer arithmetic.


Combinatorics and discrete math


Geometric optimization


Convex hulls and convex polyhedra

Most convex hull programs will also compute Voronoi diagrams and Delaunay triangulations. (Actually, all of them do, if you look at them the right way.)

Relevant pages from DCGS:
Low-dimensional convex hulls
Arbitrary-dimensional convex hulls
Measure properties
Boolean operations on polyhedra
Interesting and/or pathological polytope data
Miscellaneous


Voronoi diagrams and Delaunay triangulations

See also the implementation page from Christopher Gold’s site www.Voronoi.com.

Relevant pages from DCGS:
Voronoi diagrams and Delaunay triangulations of points

Many convex hull programs can also compute Voronoi diagrams and Delaunay triangulations.

Constrained Delaunay triangulations

See also mesh generation and manipulation.

  • Super Delaunay, a commercial fully dynamic constrained Delaunay triangulation package from David Kornmann (description only). Interactive demo versions for Sun Solaris and Linux are available here (binaries and data only). Demo versions for other architectures are available from the author.
  • Dani Lischinski’s incremental constrained Delaunay triangulation program CDT.
  • Robert J. Renka’s TRIPACK, Collected Algorithms of the ACM #751, computes constrained Delaunay triangulations, convex hulls, polygon areas, nearest neighbors, and shortest paths. (FORTRAN)
Medial axes and Voronoi diagrams of line segments
Miscellaneous


Operations on polygons

Relevant pages from DCGS:
Point location
Boolean operations
Triangulation and quadrangulation

See also the sections on Voronoi diagrams and Delaunay triangulations and mesh generation and manipulation.

Miscellaneous


Mesh generation and manipulation

See also the sections on Delaunay triangulations and geometric modeling.


Geometric modeling

See also the section on mesh generation and manipulation.

Relevant pages from DCGS:
Binary space partition trees
Collision detection
Reconstruction
Simplification


Visibility computation


Visualization tools

You should also look for the thing being visualized! See also my list of programs that can be run over the web.


Other

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
㈠ 点的基本运算 1. 平面上两点之间距离 2. 判断两点是否重合 3. 矢量叉乘 4. 矢量点乘 5. 判断点是否在线段上 6. 求一点饶某点旋转后的坐标 7. 求矢量夹角 ㈡ 线段及直线的基本运算 1. 点与线段的关系 2. 求点到线段所在直线垂线的垂足 3. 点到线段的最近点 4. 点到线段所在直线的距离 5. 点到折线集的最近距离 6. 判断圆是否在多边形内 7. 求矢量夹角余弦 8. 求线段之间的夹角 9. 判断线段是否相交 10.判断线段是否相交但不交在端点处 11.求线段所在直线的方程 12.求直线的斜率 13.求直线的倾斜角 14.求点关于某直线的对称点 15.判断两条直线是否相交及求直线交点 16.判断线段是否相交,如果相交返回交点 ㈢ 多边形常用算法模块 1. 判断多边形是否简单多边形 2. 检查多边形顶点的凸凹性 3. 判断多边形是否凸多边形 4. 求多边形面积 5. 判断多边形顶点的排列方向,方法一 6. 判断多边形顶点的排列方向,方法二 7. 射线法判断点是否在多边形内 8. 判断点是否在凸多边形内 9. 寻找点集的graham算法 10.寻找点集凸包的卷包裹法 11.判断线段是否在多边形内 12.求简单多边形的重心 13.求凸多边形的重心 14.求肯定在给定多边形内的一个点 15.求从多边形外一点出发到该多边形的切线 16.判断多边形的核是否存在 ㈣ 圆的基本运算 1 .点是否在圆内 2 .求不共线的三点所确定的圆 ㈤ 矩形的基本运算 1.已知矩形三点坐标,求第4点坐标 ㈥ 常用算法的描述 ㈦ 补充 1.两圆关系 2.判断圆是否在矩形内 3.点到平面的距离 4.点是否在直线同侧 5.镜面反射线 6.矩形包含 7.两圆交点 8.两圆公共面积 9. 圆和直线关系 10. 内切圆 11. 求切点 12. 线段的左右旋 13.公式
Eclipse平台JAVA实现 1. 实验内容 用基本增量算法和Bresenham算法画直线 2.实验目的 1)理解在显示器上画图与在纸上画图的本质区别; 2)掌握直线的光栅扫描转换过程; 3)掌握不同算法绘制直线的思路和优缺点。 3. 实验要求 1)将像素网格表现出来,建立网格坐标系; 2)用橡皮筋的形式输入参数; 3)鼠标移动时,显示鼠标当前位置; 4)显示判别式的计算过程和下一点的选择策略; 5)记录生成点的坐标,建议用表的形式; 6)图形生成过程可以重复进行。 1. 实验内容 用正负法和Bresenham算法画圆弧 2.实验目的 1)掌握圆及圆弧的光栅扫描转换过程; 2)掌握不同算法绘制圆弧的技巧和优缺点。 3. 实验要求 1)将像素网格表现出来,建立网格坐标系; 2)用橡皮筋的形式输入参数; 3)鼠标移动时,显示鼠标当前位置; 4)显示判别式的计算过程和下一点的选择策略; 5)记录生成点的坐标,建议用表的形式; 6)图形生成过程可以重复进行。 1. 实验内容 用Cohen-SutherLand算法和liang _barsky算法进行线段裁剪 2.实验目的 1)理解裁剪的相关概念 2)掌握直线段的一般裁剪过程; 3)理解并掌握Cohen-SutherLand 算法的编码思想; 4)理解并掌握Liang_Barsky算法的参数化裁剪思想; 3. 实验要求 1)将像素网格表现出来,建立网格坐标系; 2)用橡皮筋的形式输入剪裁线段和裁剪窗口; 3)鼠标移动时,显示鼠标当前位置; 4)对于线段裁剪,线段被窗口的四条边裁剪的过程要显示出来; 6)裁剪过程可以重复进行。 1. 实验内容 用Sutherland-Hodgman算法进行多边形裁剪 2.实验目的 1)理解多边形裁剪与直线段裁剪的区别; 2)掌握多边形的裁剪过程; 3)理解并掌握Sutherland-Hodgman算法的裁剪思想。 3. 实验要求 1)将像素网格表现出来,建立网格坐标系; 2)用橡皮筋的形式输入剪裁多边形和裁剪窗口; 3)鼠标移动时,显示鼠标当前位置; 4)多边形被窗口的四条边裁剪的过程以及多边形顶点增删的过程要显示出来; 5)裁剪过程可以重复进行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值