今天你們討論了以前各自想的方案的問題,基本肯定了尋找擊球點的方案,以及擊球手運動軌跡規劃的方案,這裏我只是簡單的說下咱們的擊球點的肯定方案。算法
首先咱們創建平面在直角座標系,圖中算法選擇線爲六等分線,是咱們選擇不一樣擊球方案的一條分界線,咱們的擊球行爲大部分發生在擊球區,擊球區的大小按照兩條四等分線肯定。編程
1 假定不考慮對方擊球手阻擋等狀況
2 假定只考慮擊球手速度對準冰球球心
3 假定必要時能夠優先防守,再考慮進球
4 假定擊球手擊球時速度大小固定爲最大速度3d
當冰球軌跡曲線與擊球區邊界發生的第一個交點在算法分界線左側,而且冰球按照軌跡會進入球門時,咱們只作防守不進攻,將球沿原方向反向撞回。
blog
當冰球軌跡曲線與擊球區邊界發生的第一個交點在算法分界線左側,但冰球不會進入我方球門時,讓冰球在我方球門壁反彈一次進入擊球區,隨機選擇擊球區內冰球運動軌跡上一點爲撞擊時冰球位置,而後根據速度矢量合成,肯定擊球點以及擊球手速度。
接口
當冰球軌跡曲線與擊球區邊界發生的第一個交點在算法分界線右側時,直接以該交點做爲撞擊時冰球中心,根據速度矢量合成,肯定擊球點以及擊球手速度。
變量
1 對於速度矢量合成過程當中,擊球手的速度大小和方向爲一組相關的變量,方程組只能解出速度大小與方向的關係,因此咱們是肯定速度來定方向,但實際上應該是用最優解的思想,咱們爲了簡化,沒有進行分析。
2 咱們有一個疑問:物理引擎組應該是作的如何模擬實際的物理碰撞過程,好比動量守恆,動能守恆等等。這樣的話,咱們策略尋找擊球點過程當中會遇到速度合成的問題,這樣咱們分析的時候直接把這些看成已知來用嗎?im
若是方案沒什麼太大的問題,咱們準備完善下框圖,開始編程工做。db
感受咱們組單作這一個模塊,編程不是很複雜,主要是方案的肯定,以及和其餘模塊之間的接口定義的準確,這就要咱們理解好各個模塊之間的關係,可是咱們感受和物理引擎租的關係有那麼一點兒模糊,就像上面問題說的,因此有點擔憂會弄錯策略的含義。img