アットウィキロゴ

地形効果をとりこむプログラム

地形効果を取り込んで、伝搬できない経路を音波が伝わる状況をなくすプログラムが作りたい。(海面で反射させるとか中継ノードに渡すとか。とにかく、オブジェクトがあるのに素通りする的な状況をなくしたい。)

そのためのファーストステップとして、地形を問い込むプログラムのプロトタイプを書いた…。(これだけだと単にデータを取り込むプログラムに過ぎない。)

課題は、「これをどうNS3-UANに組み込むか」及び「音波の物理伝搬性質はどうなっているかをしっかりと自分が理解できていないこと」である。

=====================================
1/20アイデア:
79 MobilityModel::GetDistanceFrom (Ptr<const MobilityModel> other) const
80 {
81  Vector oPosition = other->DoGetPosition ();
82  Vector position = DoGetPosition ();
83  return CalculateDistance (position, oPosition);
84 }
85
に、地形情報を使って、間に障害物があるか判定する関数を入れて、障害物があったら、迂回するようにする?

でも、物理現象をちゃんと考えているとは言い難い気が。

ベルホップだと地形効果を考えていないのかな?
いなくても、それを拡張するのは筋が良さそう。
=====================================

初期構想
1:送信ノードと受信ノードと地形から、伝達可能性を判定し、中間ダミーノードを設置するモジュールを作る
2:ダミーノードに送り、ダミーノードから受信ノードへ送る

以下ソースコード

mapreader2.cc
==================================================

#include <fstream>
#include <string>
#include <iostream>
#include <utility>
#include <algorithm>
#include <vector>
#include <sstream>
#define MAX_L 10
using namespace std;

struct UWMap{
int material;//physical condition of the place
float x;//x-position
float y;//y-position
float z;//z-position depth
};

int main()
{
UWMap M[MAX_L][MAX_L][MAX_L];
int dummy=0;
//Read map file
ifstream ifs( "map.txt" );
string str;
ifs>>str;
int vert = atoi(str.c_str());
ifs>>str;
int horiz = atoi(str.c_str());
ifs>>str;
int depth = atoi(str.c_str());
for(int i=0;i<depth;i++){
for(int j=0;j<vert;j++){
for(int k=0;k<horiz;k++){
        ifs >> str;
        dummy = atoi(str.c_str());
        M[i][j][k].material=dummy;
cout<<M[i][j][k].material<<endl;
}
}
}

for(int i=0;i<depth;i++){
for(int j=0;j<vert;j++){
for(int k=0;k<horiz;k++){
        cout<<M[i][j][k].material<<endl;
}
}
}

return 0;
}
==================================================

map.txt
==================================================
2 2 2
1 2
3 4
5 6
7 8
==================================================
最終更新:2013年01月20日 14:53