ここから本文です

Processingのプログラムにおいて壁と出口をプログラムにて設置し、個体をその中で...

muto_tenriさん

2017/11/1220:05:20

Processingのプログラムにおいて壁と出口をプログラムにて設置し、個体をその中で出口に向かわせるようにしたいのですが、設定の描画はできているのですが、実際に個体を出口に向かわせることができていません。
どな

たかわかる方はいますでしょうか?

途中までのプログラムは下記のとおりです。
int[] space={15,15};
int outside=2;
float hole=1.5;
int n=50;
float r=0.5;
float m=80.0;
float[][] e=new float[n][2];
float e0;//
float v0=1.5;
float[][] v=new float[n][2];
float[][] p=new float[n][2];
float dt=0.01;//時間変化?
float[][] fj=new float[n][2];
float[][] fw=new float[n][2];
float A=2.0*pow(10,3),B=0.08;
float k=1.2*pow(10,5);
float K=2.4*pow(10,5);
float T=0.5;//時定数
int bi=30;
int interval=50;
int i,j,step;
float gx;

void settings(){
size(space[0]*bi,(space[1]+outside)*bi);
}

void setup(){
//size(space[0]*bi,(space[1]+outside)*bi);
randomSeed(0);
for(i=0;i<n;i++){
p[i][0]=random(r/2.0,space[0]-r/2.0);
p[i][1]=random(outside+r/2.0,space[1]+outside-r/2.0);

以下略

補足for(j=0;j<i;j++){
if(sqrt(sq(p[i][0]-p[j][0])+sq(p[i][1]-p[j][1]))<r){
i--;
break;
}
}
}

byouga();
}

void draw(){
step++;
houkou();
sokudo();
byouga();
}
//描画
void byouga(){
background(150);
stroke(255,255,0);
line(0,outside*bi,(space[0]-hole)/2*bi,outside*bi);

line((space[0]+hole)/2*bi,outside*bi,width,outside*bi);

noStroke();
for(i=0;i<n;i++){
fill(255);
ellipse(p[i][0]*bi,p[i][1]*bi,r*bi,r*bi);
}
if(step%interval==0){

}
}

void f(){
float dj,nj0,nj1,dv;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(j!=i){
dj=sqrt(sq(p[i][0]-p[j][0])+sq(p[i][1]-p[j][1]));
nj0=(p[i][0]-p[j][0])/dj;
nj1=(p[i][1]-p[j][1])/dj;
dv=(v[j][0]-v[i][0])*(-nj1)+(v[j][1]-v[i][1])*nj0;
gx=g(r-dj);
fj[i][0]=fj[i][0]+A*exp((r-dj)/B)*nj0+(k*nj0+K*dv*(-nj1))*gx;

fj[i][1]=fj[i][1]+A*exp((r-dj)/B)*nj1+(k*nj1+K*dv*nj0)*gx;
}
}
if(p[i][1]>outside){
wall

閲覧数:
39
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

2017/11/1221:45:31

個体ってなに? 個体があるということは集団もあるの?
プログラムがわからない(やりたいことはわかっていて、コンピュータにやらせることが出来ない)のか、アルゴリズムがわからない(なにをさせればいいのかそもそもわからない)のか...「出口に向かう」というのをきちんと説明してみて。
#私はプログラミングならそこそこわかるけど、迷路脱出のアルゴリズムなんてのには詳しくないからね。

そのソース、肝心の部分はカケラも載せていませんね。ほとんど変数宣言だけ見せられてもなにもわかりません。

もしかしてProcessingのVer 2とか? それは面倒だなぁ。

  • 質問者

    muto_tenriさん

    2017/11/1223:23:05

    すみません。画像を張り付けるのを忘れていました。今はこのような状況になっております。

    この集団の個体を上の出口に動かしたいのですが、実行すると静止したままただ描写されてるままとなってしまっています。

    やりたいことはこの複数の個体を出口に向かうよう進めることです。

    プログラムを補足に載せます。




  • その他の返信(4件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

5文字以上入力してください

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。