shinpei
Grünschnabel
Hallo,
ich nutze boost 1.54.0 mit gcc 4.7 unter Ubuntu 12.10.
Wenn ich boost intersection auf ein Dreicke und ein Rechteck anwendet verhält sich es wir ein Cut

Kann mir jemand sagen, wo der Fehler liegt? Die Orientierung der Geometrie hab ich schon ohne Erfolg geändert.
Hier den Code, den ich verwende :
ich nutze boost 1.54.0 mit gcc 4.7 unter Ubuntu 12.10.
Wenn ich boost intersection auf ein Dreicke und ein Rechteck anwendet verhält sich es wir ein Cut

Kann mir jemand sagen, wo der Fehler liegt? Die Orientierung der Geometrie hab ich schon ohne Erfolg geändert.
Hier den Code, den ich verwende :
Code:
#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");
}