Giriş
wkt metodu çıktı olarak şunu verir.
Elimizde bir polygon olsun
Elimizde bir polygon olsun.
wkt metodu çıktı olarak şunu verir.
POLYGON((1 3,4 5,9 0,1 3))
dsv metodu çıktı olarak şunu verir.(((1, 3), (4, 5), (9, 0), (1, 3)))
ÖrnekElimizde bir polygon olsun
typedef boost::geometry::model::d2::point_xy<double> point;
typedef boost::geometry::model::polygon<point> polygon;
polygon poly;
Şöyle yaparızstd::cout << boost::geometry::dsv(poly) << std::endl;
ÖrnekElimizde bir polygon olsun.
namespace bg = boost::geometry;
namespace bgm = bg::model;
using point = bgm::d2::point_xy<int>;
using polygon = bgm::polygon<point>;
dsv metodu şöyle olsun.void debug_print(polygon const& p) {
std::string reason;
bool valid = bg::is_valid(p, reason);
std::cout << bg::dsv(p) << " - " << (!valid?"invalid ("+reason+")":"valid") << "\n";
}
Bu yapıları dolduralım ve string'e çevirelim.point arr[] { {1,3}, {4,5}, {9, 0} };
polygon p { {std::begin(arr), std::end(arr)} };
debug_print(p);
Çıktı olarak şunu alırız.(((1, 3), (4, 5), (9, 0))) - invalid (Geometry has too few points)
polygon'u düzeltelim ve tekrar stirng'e çevirelim.bg::correct(p);
debug_print(p);
Çıktı olarak şunu alırız.(((1, 3), (4, 5), (9, 0), (1, 3))) - valid
Hiç yorum yok:
Yorum Gönder