Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 计算车辆节点之间的距离_C++_Simulation_Omnet++_Veins_Sumo - Fatal编程技术网

C++ 计算车辆节点之间的距离

C++ 计算车辆节点之间的距离,c++,simulation,omnet++,veins,sumo,C++,Simulation,Omnet++,Veins,Sumo,我是一个新手,尝试在MyVeinsApp.cc中实现加权p持久性。该公式中使用了发送节点和接收节点之间的距离。我看到了下面的两个函数 virtual Coord& getSenderPos(); virtual const Coord& getSenderPos() const {return const_cast<WaveShortMessage*>(this)->getSenderPos();} virtualcoord&getSenderPos(); 虚

我是一个新手,尝试在MyVeinsApp.cc中实现加权p持久性。该公式中使用了发送节点和接收节点之间的距离。我看到了下面的两个函数

virtual Coord& getSenderPos();
virtual const Coord& getSenderPos() const {return const_cast<WaveShortMessage*>(this)->getSenderPos();}
virtualcoord&getSenderPos();
虚拟常量坐标&getSenderPos()常量{return const_cast(this)->getSenderPos();}
我应该使用其中一种方法来计算节点之间的距离吗


请告知最佳方法。

对于您显然需要两个位置的距离。通过询问移动模块和您收到的消息中发送者的位置,您可以获得当前节点的位置。然后,可以使用以下方法从计算两点之间的距离:

/**
 * @brief Returns the distance to Coord 'a'.
 */
double distance(const Coord& a) const {
    Coord dist(*this - a);
    return dist.length();
}

对于距离,你显然需要两个位置。通过询问移动模块和您收到的消息中发送者的位置,您可以获得当前节点的位置。然后,可以使用以下方法从计算两点之间的距离:

/**
 * @brief Returns the distance to Coord 'a'.
 */
double distance(const Coord& a) const {
    Coord dist(*this - a);
    return dist.length();
}

寻找应用程序实现的路径损耗模型。这可以在config.xml文件中的模拟模型类型中看到。 例如,默认情况下,veins4.7.1使用SimplePathLossModel。在该路径丢失模型(.cc文件)的行为描述中,可以看到变量

收信人

只要找到它们之间的长度,就有可能得到发送者和接收者之间的距离

加倍您的距离=(接收方POS发送方POS).length()

如果您像我一样使用Prefere调试标记,您可以通过在调试中使用以下命令打印它来查看此距离:


splmEV查找应用程序实现的路径损耗模型。这可以在config.xml文件中的模拟模型类型中看到。 例如,默认情况下,veins4.7.1使用SimplePathLossModel。在该路径丢失模型(.cc文件)的行为描述中,可以看到变量

收信人

只要找到它们之间的长度,就有可能得到发送者和接收者之间的距离

加倍您的距离=(接收方POS发送方POS).length()

如果您像我一样使用Prefere调试标记,您可以通过在调试中使用以下命令打印它来查看此距离:

splmEV