计算几何常用算法概览

相关内容:


判段点是否在多边形内

实现树结构的类CTree

一、引言

计算机的出现使得很多原本十分繁琐的工作得以大幅度简化,但是也有一些在人们直观看来很容易的问题却需要拿出一套并不简单的通用解决方案,比如几何问题。 作为计算机科学的一个分支,计算几何主要研究解决几何问题的算法。在现代工程和数学领域,计算几何在图形学、机器人技术、超大规模集成电路设计和统计等诸 多领域有着十分重要的应用。在本文中,我们将对计算几何常用的基本算法做一个全面的介绍,希望对您了解并应用计算几何的知识解决问题起到帮助。

二、目录

本文整理的计算几何基本概念和常用算法包括如下内容:

矢量的概念

矢量加减法

矢量叉积

折线段的拐向判断

判断点是否在线段上

判断两线段是否相交

判断线段和直线是否相交

判断矩形是否包含点

判断线段、折线、多边形是否在矩形中

判断矩形是否在矩形中

判断圆是否在矩形中

判断点是否在多边形中

判断线段是否在多边形内

判断折线是否在多边形内

判断多边形是否在多边形内

判断矩形是否在多边形内

判断圆是否在多边形内

判断点是否在圆内

判断线段、折线、矩形、多边形是否在圆内

判断圆是否在圆内

计算点到线段的最近点

计算点到折线、矩形、多边形的最近点

计算点到圆的最近距离及交点坐标

计算两条共线的线段的交点

计算线段或直线与线段的交点

求线段或直线与折线、矩形、多边形的交点

求线段或直线与圆的交点

凸包的概念

凸包的求法

三、算法介绍

矢量的概念:

如果一条线段的端点是有次序之分的,我们把这种线段成为有向线段(directed segment)。如果有向线段p1p2的起点p1在坐标原点,我们可以把它称为矢量(vector)p2。

矢量加减法:

设二维矢量P = ( x1,y1 ) ,Q = ( x2 , y2 ) ,则矢量加法定义为: P + Q = ( x1 + x2 , y1 + y2 ),同样的,矢量减法定义为: P - Q = ( x1 - x2 , y1 - y2 )。显然有性质 P + Q = Q + P , P - Q = - ( Q - P )。

矢量叉积:

计算矢量叉积是与直线和线段相关算法的核心部分。设矢量P = (x1,y1) ,Q = (x2,y2),则矢量叉积定义为由(0,0)、p1、p2和p1+p2所组成的平行四边形的带符号的面积,即:P × Q = x1*y2 - x2*y1,其结果是一个标量。显然有性质 P × Q = - ( Q × P ) 和 P × ( - Q ) = - ( P × Q )。一般在不加说明的情况下,本文下述算法中所有的点都看作矢量,两点的加减法就是矢量相加减,而点的乘法则看作矢量叉积。

叉积的一个非常重要性质是可以通过它的符号判断两矢量相互之间的顺逆时针关系:

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值