有了上一篇博文打下的基础,读者应该对分析查看几何图形有了初步了解,本着实用的原则,这篇文章,主要介绍Geometry的常用计算。它提供了点线面相交,相离的判断,以及多边形的布尔运算,在几何分析中非常有用,如果读者对深入学习Geometry感兴趣,需要深入学习泛型编程,作者在学习过程中也是感到深深的吃力,特别是缓冲区的代码,SDK提供的算法有时计算不出结果,详情查看注释,代码如下:
//ANormGeoLib.h--计算文件
#pragma once
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
namespace bg = boost::geometry;
typedef bg::model::d2::point_xy DPoint; //双精度的点
typedef bg::model::segment DSegment; //线段
typedef bg::model::linestring DLineString; //多段线
typedef bg::model::box DBox; //矩形
typedef bg::model::ring DRing; //环
typedef bg::model::polygon DPolygon; //多边形
typedef bg::model::multi_polygon DMultiPolygon;//多个多边形
typedef bg::model::multi_point DMultiPoint;//多点
#define A_PI 3.141592653589793238462643383279502884197
namespace ANormGeoLib
{
// 二维空间点到直线的垂足
struct _Point
{
double x, y;
_Point(double x, double y) :x(x), y(y)
{
}
_Point() :x(0), y(0)
{
}
};
//获取垂足
inline _Point GetFootOfPerpendicular(
const _Point &pt, // 直线外一点
const _Point &begin, // 直线开始点
const _Point &end) // 直线结束点
{
_Point retVal;
double dx = begin.x - end.x;
double dy = begin.y - end.y;
if (abs(dx)
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?