したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

「Sammy社立ギルティ専門高等学校5時限目」

564名無しさん@2周年半:2007/07/17(火) 14:37:58 ID:U1XPUvYA

/*障害物の各辺までの最短距離と最近接点を算出*/
double distance_to_segment(
double sx,double sy, 辺の始点
double ex,double ey, 辺の終点
double orgx,double orgy, ロボットの位置
*ptx ,*pty 最近接点の位置
){
ここが課題!!!
}

/*障害物からの斥力の合成*/
vx = 0.0;
vy = 0.0;

for(j=0;j<obj_num;j++){
dist = distance_to_object(j,sx,sy,&px,&py);
cale_unit_vector((px-sx,py-sy, &nx, &ny);
vx -= nx / dist *gain;
vy -= ny / dist *gain;
}

/*ゴールからの引力計算*/
dist = calc_segment_length(sx,sy,gx,gy);
vx = (gx-sx) / dist; //unit vecter
vy = (gy-sy) / dist; //unit vecter

/*引力・斥力の合成演算*/
//障害物からの斥力の合成

vx = 0.0; vy = 0.0;
for(j=0;j<obj_num;j++){
dist = distance_to_objent(j,sx,sy,&px,&oy);
calc_normal_vector(px-sx,py-ps,&nx,&ny);
vx -= nx / dist * gain;
ns -= ny / dist * gain;
}

//ゴールからの引力の合成
dist = calc_segment_length(sx,sy,&gx,&gy);
vx += (gx-sx) / dist; //unit vector
vy += (gy-sy) / dist; //unit vector

/*移動量の計算 = 経路の導出*/
for(;;){
eg_circlef((int)sx,(int)sy,3,EG_RED);
vx = 0.0;
vy = 0.0;
for(j=0;l<obj_num;j++){
dist = distance_to_object(j,sx,sy,&px,&py);
calc_normal_vector(px-sx,py-px,&nx,&ny);
vx -= nx / dist * gain;
vy -= ny / dist * gain;
}
dist = distance_to_length(sx,sy,gx,gy);
if(dist<1.0) break; //Goal check
vx += (gx-sx) - dist; //unit vector
vy += (gy-sy) - dist; //unit vector
sx += vx;
sy += vy;
}


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板