如何优化导弹自动追踪算法 ?

cyvan 2019-01-27 11:52:51
原视频是320*240尺寸,X坐标中间位置是160,cpt.x是目标在画面中的X坐标,20是允许的像素误差
基本思想就是160减去cpt.x,以便获知 需要移动的方向和步距,tmenber 控制不进电机速度

视频:
https://www.bilibili.com/video/av41467239

void Thread_x::run() ## 负责移动X坐标的线程
{
DEV_Digital_Write(M1_ENABLE_PIN, 0); ## 启用1号电机
int tmenber = 8000;
while(1){

QThread:: usleep(tmenber);
if ( 160-cpt.x >= 20){

DEV_Digital_Write(M1_DIR_PIN, 0); ## 1号电机 正旋转

DEV_Digital_Write(M1_STEP_PIN, 1);
DEV_Delay_ms(0.5);
DEV_Digital_Write(M1_STEP_PIN, 0);
DEV_Delay_ms(0.5);
}
if ( 160-cpt.x <= -20){

DEV_Digital_Write(M1_DIR_PIN, 1); ## 1号电机 反旋转

DEV_Digital_Write(M1_STEP_PIN, 1);
DEV_Delay_ms(0.5);
DEV_Digital_Write(M1_STEP_PIN, 0);
DEV_Delay_ms(0.5);
}
}

这个算法简单 但是有个重大缺陷,tmenber = 8000 仅适合移动缓慢的目标,tmenber = 100适合快速移动的目标。如何让算法能自己动态调整呢?

我找到了这篇文章:
一个简单的导弹自动追踪以及实时图片旋转算法,Python-pygame代码实现
https://www.cnblogs.com/halfsand/p/7976636.html

自己是个文盲 看不懂,哪位大神可以帮改改代码??
...全文
253 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyvan 2019-01-27
  • 打赏
  • 举报
回复

2,543

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。

试试用AI创作助手写篇文章吧