您当前的位置: 首页 > 

插件开发

暂无认证

  • 1浏览

    0关注

    492博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Boost库-功能介绍-Geometry-图形开发库-计算几何-常用功能封装-GraphicalDebugging(二)

插件开发 发布时间:2022-05-24 08:34:44 ,浏览量:1

  有了上一篇博文打下的基础,读者应该对分析查看几何图形有了初步了解,本着实用的原则,这篇文章,主要介绍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)             
关注
打赏
1665481431
查看更多评论
0.0402s