我正在使用Boost库来操作N维空间中的点。问题是我找不到一种方法来初始化它们,而不需要逐个设置每个坐标。
要使用此库获取或设置坐标,应该使用:
bg::model::point<double, 2, bg::cs::cartesian> point1; // Declaration
point1.set<0>(1.0); // Coordinate 0 set
point1.set<1>(2.0); // Coordinate 1 set
double x = point1.get<0>(); // Coordinate 0 get
double y = point1.get<1>(); // Coordinate 1 get
您可以在https://www.boost.org/doc/libs/1_67_0/libs/geometry/doc/html/geometry/reference/models/model_point.html找到示例和信息。
然而,我使用的是 N 维空间中的点,其中 N > 100,并且我无法为每个坐标手动编写一行代码。但可以尝试类似以下的东西:
bg::model::point<double, 2, bg::cs::cartesian> point1;
for(int i(0); i<NDIM; ++i){
point1.set<i>(1.0);
}
无法工作,因为坐标的索引需要是一个常量值。您能帮我找到一种自动初始化坐标的方法吗?我尝试了很多方法,但没有一个有效!