저는 토목 공학 박사 과정 학생이며 최근에 C++로 코딩 작업을 시작했습니다. 기본적으로 두 개의 다각형의 중첩 영역 또는 교차 영역을 얻는 데 관심이 있습니다. 두 개의 토양 입자의 투영.Boost :: geometry :: C++과의 교차
나는 많은 검색을했고, 그 부스트 지오메트리가 나를위한 최상의 해결책이라는 것을 알았습니다. 내가 겪고있는 특정 문제에 대한 많은 검색을 수행했지만 문제를 해결할 수 없었습니다.
여기 제가 사용하고있는 소프트웨어는 PFC3D (입자 흐름 코드)라고하는 문제입니다. 이 소프트웨어와 상호 작용하고 DLL 파일을 컴파일하여 PFC에서 실행하려면 Microsoft Visual Studio 2010을 사용해야합니다.
내 코드가 겹치는 부분없이 잘 작동합니다. 다음은 코드입니다.
// Includes for overlapping
#include <boost/geometry.hpp>
#include <boost/geometry/core/point_type.hpp>
#include <boost/geometry/geometries/point.hpp>
#include <boost/geometry/geometries/register/point.hpp>enter code here
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/polygon.hpp>
typedef boost::geometry::model::polygon<boost::geometry::model::d2::point_xy<double> > polygon;
polygon poly1, poly2;
poly1 {{0.0, 0.0}, {0.0, 1.0}, {1.0, 1.0}, {1.0, 0.0}, {0.05, 0.0}};
poly2 {{0.5, -0.5}, {0.5, 0.5}, {1.5, 0.5}, {1.5, -0.5}, {0.5, -0.5}};
std::deque<polygon> output;
boost::geometry::intersection(poly1, poly2, output);
double area = boost::geometry::area(output);
오류는 poly1 및 poly2 좌표를 지정하는 중입니다. 희망 하시겠습니까? 감사!
사용하는 부스트의 버전은 무엇? – mascoj
답변 해 주셔서 감사합니다. boost_1_65_0을 사용하고 있습니다. –