搜题
问题   更新时间2023/4/3 12:59:00

写出高级群聚中避开障碍物算法代码

【答案要点】 Vector a, p, b; for(j=0; j<_NUM_OBSTACLES; j++) { u = Units[i].vVelocity; u.Normalize(); v = u * _COLLISION_VISIBILITY_FACTOR * Units[i].fLength; a = Obstacles[j] - Units[i].vPosition; p = (a * u) * u; b = p - a; if((b.Magnitude() < _OBSTACLE_RADIUS) && (p.Magnitude() < v.Magnitude())) { w = VRotate2D(-Units[i].fOrientation, a); w.Normalize(); if(w.x < 0) m = 1; if(w.x > 0) m = -1; Fs.x += m * _STEERINGFORCE * (_COLLISION_VISIBILITY_FACTOR * Units[i].fLength)/a.Magnitude(); } }
王老师:19139051760(拨打)