1 (изменено: FrankSinatra, 2015-07-07 23:27:17)

Тема: Алгоритм преследования цели

Задача:
Преследовать красную точку управляя клавишами WASD таким образом, чтобы точка была всегда в перекрестии.
Точка постоянно двигается.
Для преследования статической точки использовал следующий простой алгоритм:


XI=704
YI=944

        Send {W Down}
       
       sleep 100
       Send {Delete Down} 
  MoveY:
        
        
        PixelSearch, X, Y, Xi-50, Yi-1, Xi+50, Yi+1, 0xFF0000, 0, Fast RGB
        if ErrorLevel
        goto, MoveY
        else
           {                   
                Send {W UP}
                sleep 200
                Send {Delete}  
                sleep 2000
                SoundBeep, 750
                            }
XI=787
YI=856

        Send {A Down}
        sleep 100
        Send {Delete Down} 
          
  MoveX:
   
        
        PixelSearch, X, Y, Xi-1, Yi-50, Xi+1, Yi+50, 0xFF0000, 0, Fast RGB
        if ErrorLevel
        goto, MoveX
        else
           {                   
                Send {A UP}
                 sleep 200
                Send {Delete UP}  
                sleep 2000
                SoundBeep, 750
                XI=0
                YI=0
                
                           } 

, где xi и yi смещенные центры перекрестия прицела. Алгоритм работает.

Вопрос, каким образом можно заставить перекрестие с центром в хi,yi преследовать двигающуюся точку?

Другими словами, у вас есть мишень, есть программное управление этой мишенью. Пуля "дура" летит в молоко к примеру по неправильной спиральной траектории, вам необходимо всегда двигать мишень таким образом чтобы пуля всегда была в 10:

2 (изменено: FrankSinatra, 2015-07-10 22:22:31)

Re: Алгоритм преследования цели

del)