gpt4 book ai didi

c++ - Boost几何点初始化

转载 作者:行者123 更新时间:2023-11-30 04:24:52 25 4
gpt4 key购买 nike

我正在尝试熟悉 boost::geometry::point。在我的类中,我有一个没有参数的默认构造函数,在这种情况下我想用零初始化所有点值。

由于 set/get 函数是模板,下面的代码部分会在编译时产生错误:

    for( std::size_t i = 0; i < pnt.size() ; i++ )
{
pnt.set<i>( 0.0 );
}

引用文档http://www.boost.org/doc/libs/1_51_0/libs/geometry/doc/html/geometry/reference/models/model_point.html

我需要设置一些值,因为:

Coordinates are not initialized. If the constructor with parameters is not called and points are not assigned using set or assign then the coordinate values will contain garbage.

有没有办法在编译时将所有值初始化为零?如果不是那么在运行时?

最佳答案

您可以使用 assign_zeroassign_values (这个只适用于 2、3 和 4 个组件):

boost::geometry::assign_zero(pnt);
boost::geometry::assign_values(pnt, 0.0, 0.0);

如果您使用的是自定义点类,则需要使用 BOOST_GEOMETRY_REGISTER_POINT... 之一进行注册。为了能够使用 Boost Geometry 功能。您可以找到几个示例 here .

关于c++ - Boost几何点初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12479095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com