Giriş
Şu satırları dahil ederiz.
Tanımlama
Her polygon point nesnelerini saklar.
Örnek - int nokta
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Boot polygon kütüphanesi
Hem geometry ve hem de polygon kütüphaneleri polygon sınıfları içerir. geometry'den diğer kütüphaneyi kullanmak için şu satırı dahil ederiz.
İçbükey polygon'un tüm açıları 180 dereceden küçüktür.
Constructor - default
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Bir vector döner. Şöyle yaparız.
Şu satırları dahil ederiz.
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/polygon.hpp>
Açıklaması şöyle.According to the documentation of the Polygon Concept the ring types must fulfil the Ring Concept.Polygon üzerinde matris dönüşümü yapmak mümkün değil.
According to the documentation of that Ring Concept std::list<> is out of the question, because std::list's iterators are not random access iterators
Tanımlama
Her polygon point nesnelerini saklar.
Örnek - int nokta
Şöyle yaparız.
using point = bgm::d2::point_xy<int>;
using linestring = bgm::linestring<point>;
using ring = bgm::ring<point>;
using polygon = bgm::polygon<point>;
Örnek - double noktaŞöyle yaparız.
using PointType = boost::geometry::model::d2::point_xy <double>;
using PolygonType
= boost::geometry::model::polygon <PointType>;
Örnek - cpp_dec_float_100 noktaŞöyle yaparız.
#include <boost/multiprecision/cpp_dec_float.hpp>
#include <boost/geometry.hpp>
#include <boost/geometry/io/io.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
namespace bg = boost::geometry;
namespace bgm = bg::model;
typedef boost::multiprecision::cpp_dec_float_100 base_type;
typedef bgm::d2::point_xy<base_type> point_type;
typedef bgm::polygon<point_type> polygon_type;
typedef bgm::multi_polygon<polygon_type> multipolygon_type;
polygon_type in;
Örnek - checked_int128_tŞöyle yaparız.
typedef bgm::polygon<bgm::d2::point_xy<mp::checked_int128_t, bg::cs::cartesian>> TPolygon;
Polygon boost::geometry::append() , boost::geometry::read_wkt() çağrısı ile doldurulur.Boot polygon kütüphanesi
Hem geometry ve hem de polygon kütüphaneleri polygon sınıfları içerir. geometry'den diğer kütüphaneyi kullanmak için şu satırı dahil ederiz.
#include <boost/geometry/geometries/adapted/boost_polygon.hpp>
Convex ve Concaveİçbükey polygon'un tüm açıları 180 dereceden küçüktür.
Constructor - default
Şöyle yaparız.
PolygonType polygon;
Constructor - initializer_listŞöyle yaparız.
PointType p1(1,3);
PointType p2(2,4);
PolygonType my_polygon = { p1, p2 };
Şöyle yaparız. outer()'a push_back yapmak gibidir.PolygonType pol {
{ {0, 0}, {0, 2}, {2, 2}, {2, 0}, {0, 0} }
};
Constructor - ringŞöyle yaparız.
namespace bg = boost::geometry;
namespace bgm = bg::model;
using point = bgm::d2::point_xy<int>;
using linestring = bgm::linestring<point>;
using ring = bgm::ring<point>;
using polygon = bgm::polygon<point>;
linestring ls { {1,3}, {4,5}, {9, 0} };
polygon p { ring{ls.begin(), ls.end()} };
inners metodu
Şöyle yaparız.model::ring<PointType> ring { {0, 0}, {2, 0}, {2, 2}, {0, 2} };
polygon.inners().push_back (ring);
outer metoduBir vector döner. Şöyle yaparız.
polygon.outer().push_back( point(2.5, 7.5) );
Şöyle yaparız.polygon.outer().insert( poly.outer().begin()+2, point(2.5, 7.5) );
Hiç yorum yok:
Yorum Gönder