我是新的静脉,并试图实现加权p-持久性在MyVeinsApp.cc内。该公式使用发送节点与接收节点之间的距离。我看到了下面的两个功能。
virtual Coord& getSenderPos();
virtual const Coord& getSenderPos() const {return const_cast<WaveShortMessage*>(this)->getSenderPos();}
我应该使用其中一种方法来计算节点之间的距离吗?
请就最佳方法提出建议。
发布于 2017-03-09 04:17:27
就距离而言,你显然需要这两个位置。您可以从收到的消息中询问移动模块和发送方的位置,从而获得当前节点的位置。然后可以使用库德中的以下方法计算两点之间的距离:
/**
* @brief Returns the distance to Coord 'a'.
*/
double distance(const Coord& a) const {
Coord dist(*this - a);
return dist.length();
}
发布于 2018-10-24 05:21:20
查找应用程序实现的路径丢失模型。这可以在config.xml文件中的模拟模型类型中看到。例如,在默认情况下,veins4.7.1使用SimplePathLossModel。在此路径丢失模型(.cc文件)的行为描述中,您可以看到变量
reveiverPos,senderPos
只要找到它们之间的长度,发送方和接收方之间就有可能有距离。
double yourDistance =(ReceiverPos SendersPos).length();
如果像我一样,您使用的是首选调试标记,则可以通过使用以下方法在调试中打印它来查看此距离:
splmEV <<“发送方与接收方之间的距离为:<< yourDistance << endl;
确保定义splmEV。
https://stackoverflow.com/questions/42687283
复制