6
我有一個提升交叉點的大問題。我想相交四三角形,但我得到一個片段:Boost Intersection不能正常工作
有人可以幫我嗎?
我試圖改變幾何的方向,什麼也沒有發生。該交叉點與其他三角形一起工作,但與此不同。
typedef model::polygon<model::d2::point_xy<double> > polygon
std::deque<polygon> tmp;
bool ok = intersection(quad, triangle, tmp)
三角形:
-213.57 -2.13163e-14 0
-350 37.5 0
-350 -2.84217e-14 0
盒:
BoundingBox(-300, -165, 2, 170, -0.1, 0.1)
UPDATE:
這裏我的代碼。我在Ubuntu 12.10
#include <deque>
#include <fstream>
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/polygon.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/io/wkt/wkt.hpp>
#include <boost/geometry/extensions/io/svg/svg_mapper.hpp>
using namespace boost::geometry;
int main()
{
typedef model::polygon<model::d2::point_xy<double> > polygon;
typedef typename model::d2::point_xy<double> point_type;
polygon quad, triangle;
read_wkt("POLYGON((-213.57 -2.131 , -350.0 37.5 , -350.0 -2.842 , -213.57 -2.131))", triangle);
read_wkt("POLYGON((-300.0 2 , -300 170 , -165 170 , -165 2 , -300 2))", quad);
std::deque<polygon> output;
intersection(quad, triangle, output);
std::string filename = "intersectiontest.svg";
std::ofstream svg(filename.c_str());
svg_mapper<point_type> mapper(svg, 600, 600);
mapper.add(output[0]);
mapper.map(output[0], "fill-opacity:0.5;fill:rgb(153,204,0);stroke:rgb(255,0,0);stroke-width:5");
}
我編輯我的職務 – shinpei 2013-03-09 13:39:40