Articles of boost geometry

Boost intersection

J’ai un problème avec l’algorithme d’intersection boost. Je ne sais pas si j’ai commis une erreur ou si c’est un bogue. #include #include #include #include #include #include int main() { typedef boost::geometry::model::d2::point_xy BoostPointXY; typedef boost::geometry::model::polygon BoostPolygon; BoostPolygon polyOne, polyTwo; boost::geometry::read_wkt( “POLYGON((45, 4), (45, 17), (44, 19), (44, 22), (50, 20), (51.5, 17), (58, 4), (60, […]

Définir un point dimensionnel dans Boost.Geometry

Je me bats pour définir et remplir un point dans d dimensions. Pour être exact, j’ai exploité le fait que laisser Boost.Geometry gérer toute dimension par l’utilisateur est impossible (c’est ce que j’ai vu dans les documents et leur liste de diffusion). J’essaie donc de définir un sharepoint dimension 100D ou 10000D. Voici le code, […]

Tampon négatif de Boost :: geometry :: multi_polygon

J’essaie d’appliquer un tampon négatif à un multipolygone à l’aide de Boost :: geometry. Lorsque je lance le code ci-dessous, j’obtiens le résultat approprié. Mais si je supprime le bloc marqué, qui ne fait qu’exporter et réimporter la géomésortinge dans WKT, je reçois un MultiPolygon vide dans la géomésortinge tmp_erosion. J’ai essayé d’utiliser la fonction […]

Puis-je utiliser Boost.Geometry.index.rtree avec des threads?

J’essaie de créer un index spatial multithread à l’aide de l’arborescence de Boost.Geometry, mais je suis incapable de déterminer s’il s’agit d’un thread-safe Je ne vois aucun mécanisme de locking dans rtree.hpp, mais ma connaissance de C ++ / Boost est au niveau débutant. Le thread Boost.Geometry.index.rtree est-il sécurisé d’une manière ou d’une autre? Sinon, […]

union de polygones utilisant boost

J’utilise boost :: geometry :: union_ pour fusionner un vecteur de polygones aléatoires, et voici ce que j’ai écrit: #include #include #include #include #include #include #include #include typedef boost::geometry::model::polygon<boost::geometry::model::d2::point_xy > polygon; void union_polys(std::vector In_polys,std::vector &Out_polys) { std::vector temp_polys; bool *considered = new bool [In_polys.size()]; for(unsigned i = 0 ; i < In_polys.size() ; i++) considered[i] […]

boost rtree of box donne une mauvaise intersection avec le segment

Boost rtree donne un résultat d’intersection incorrect pour certaines intersections avec des requêtes de segment. Dans ce cas, la boîte englobante est un carré y-planar 10×10 à y = 0. J’interroge avec une ligne z-alignée de (2, 1, 0) à (2, 1, 10). Ce qui est intéressant, c’est que si j’utilise une boîte pour une […]

Comment créer un Boost.Range qui masque plusieurs couches de vecteurs et l’expose sous la forme d’une seule plage?

J’ai une hiérarchie de classes héritée que je ne peux pas modifier. En raison des exigences d’une bibliothèque externe, je dois définir des Boost.Ranges pour la ligne et l’anneau, où les deux exposent uniquement les points d’un seul cycle (c’est-à-dire que cela devrait être, à la fois pour Line et Ring, un Boost.Range of Points […]

Utilisation de la géomésortinge accélérée pour vérifier si deux lignes ont une intersection

Est-il possible d’utiliser boost :: geometry pour vérifier si deux segments de droite (chacun donné par deux points en 2D) se coupent? Si cela est possible, boost :: geometry permet-il de vérifier également les cas spéciaux tels que seul un point est (numériquement) sur l’autre ligne ou que les deux lignes sont égales?

Obtention des coordonnées de points à partir d’un polygone Amplifier la géomésortinge

J’ai une simple DLL faisant des calculs avec les polygones de Boost Geometry. (Principalement des intersections et des différences.) Étant donné que la DLL sera probablement appelée à partir de code C #, et de Delphi et qui sait d’où, d’autre, je devrais convertir le résultat en tableaux que tout peut gérer. MISE À JOUR: […]

boost :: geometry: voisins les plus proches utilisant un cercle

J’utilise l’implémentation Rtree de boost :: geometry pour stocker (beaucoup de) points 2D. Maintenant, je dois faire des requêtes sur les voisins les plus proches basées sur la distance. Cependant, le manuel décrit uniquement les requêtes sous forme de boîtes rectangulars (c’est-à-dire “Obtenez-moi tous les points qui se trouvent à l’intérieur de ce rectangle”) ou […]