C++ 使用boost::geometry的多边形法向量
我正在试用boost::geometry,想知道您是否知道一种有效的方法来获取多边形与线段相交处多边形的法向量。 或者类似于它相交的线段的线段id?如果我想得到包含交点的多边形的线段,我知道如何得到法线。 到目前为止我有C++ 使用boost::geometry的多边形法向量,c++,polygon,intersection,normals,boost-geometry,C++,Polygon,Intersection,Normals,Boost Geometry,我正在试用boost::geometry,想知道您是否知道一种有效的方法来获取多边形与线段相交处多边形的法向量。 或者类似于它相交的线段的线段id?如果我想得到包含交点的多边形的线段,我知道如何得到法线。 到目前为止我有 #include <boost/geometry.hpp> #include <boost/geometry/geometries/point_xy.hpp> #include <boost/geometry/geometries/polygon.
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/polygon.hpp>
#include <boost/geometry/io/wkt/wkt.hpp>
#include <boost/geometry/multi/geometries/multi_polygon.hpp>
#include <boost/assign.hpp>
int main(){
typedef model::d2::point_xy<double> point;
typedef model::ring< point > ring;
typedef model::polygon< point > polygon;
typedef model::multi_polygon< polygon > polygons;
typedef model::box< point > box;
typedef boost::geometry::model::segment<point> Segment
//Polygon
std::string poly_file="poly.dat";
polygon poly;
read_wkt(poly_file, poly);
correct(poly);
//Line segment:
polygon lineSegment;
point p0(0,-0.5);
point p1(1,0.5);
append(lineSegment, p0);
append(lineSegment, p1);
//Getting intersection:
std::vector<point> output;
intersection(poly, lineSegment, output);
//Getting normal vector at this intersection point
// ???
return 0;
}
#包括
#包括
#包括
#包括
#包括
#包括
int main(){
typedef模型::d2::点\ xy点;
typedef模型::环<点>环;
typedef模型::多边形<点>多边形;
typedef模型::多_多边形<多边形>多边形;
typedef模型::boxbox;
typedef boost::geometry::model::segment
//多边形
std::string poly_file=“poly.dat”;
多边形多边形;
read_wkt(poly_文件,poly);
正确(多边形);
//线段:
多边形线段;
p0(0,-0.5)点;
点p1(1,0.5);
追加(线段,p0);
追加(线段,p1);
//获取交叉点:
std::矢量输出;
交点(多边形、线段、输出);
//在这个交点得到法向量
// ???
返回0;
}
提前多谢 @Cyber的可能副本我知道如何计算法向量本身。但是我正在寻找一种有效的方法来找到直线与多边形相交的线段