亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? reflect.c

?? 機(jī)器人足球,是用c語(yǔ)言實(shí)現(xiàn)的。大概有兩千行
?? C
字號(hào):
/*計(jì)算球反彈后的新方向角和新速度*/

int WhetherReflect(Football *ball,Robot *dubu,FootballPitch *pitch,int i);
int MeetBoundary(Football *ball,FootballPitch *pitch);
int MeetRobot(Football *ball,Robot *dubu);

/*單人足球的球的反彈角的計(jì)算*/
int WhetherReflect(Football *ball,Robot *dubu,FootballPitch *pitch,int i)
{
    float x1,y1,x2,y2,x3,y3,x4,y4;
    int x;

    /* when the ball meets the boundary */
    if(fabs(ball->ball_x - pitch->position[0]) <= (ball->radius + 2))
    {
        if(ball->ball_y >= 250 || ball->ball_y <= 200)
            ball->direction_angle = ReflectAngle(ball->direction_angle,pitch->position[0],pitch->position[1],pitch->position[0],pitch->position[3]);
    }
    else if(fabs(ball->ball_x - pitch->position[2]) <= (ball->radius + 2))
    {
        if(ball->ball_y >= 250 || ball->ball_y <= 200)
            ball->direction_angle = ReflectAngle(ball->direction_angle,pitch->position[2],pitch->position[1],pitch->position[2],pitch->position[3]);
    }
    else if(fabs(ball->ball_y - pitch->position[1]) <= (ball->radius + 2))
        ball->direction_angle = ReflectAngle(ball->direction_angle,pitch->position[0],pitch->position[1],pitch->position[2],pitch->position[1]);
    else if(fabs(ball->ball_y - pitch->position[3]) <= (ball->radius + 2))
        ball->direction_angle = ReflectAngle(ball->direction_angle,pitch->position[0],pitch->position[3],pitch->position[2],pitch->position[3]);

    /* when the ball meets the angle */
    else if(fabs(Distance(ball->ball_x,ball->ball_y,90,60,70,80) - ball->radius) <= 2)
        ball->direction_angle = ReflectAngle(ball->direction_angle,90,60,70,80);
    else if(fabs(Distance(ball->ball_x,ball->ball_y,550,60,570,80) - ball->radius) <= 2)
        ball->direction_angle = ReflectAngle(ball->direction_angle,550,60,570,80);
    else if(fabs(Distance(ball->ball_x,ball->ball_y,550,390,570,370) - ball->radius) <= 2)
        ball->direction_angle = ReflectAngle(ball->direction_angle,550,390,570,370);
    else if(fabs(Distance(ball->ball_x,ball->ball_y,70,370,90,390) - ball->radius) <= 2)
        ball->direction_angle = ReflectAngle(ball->direction_angle,70,370,90,390);

    /* when the ball meets the robot */
    x1 = dubu->position_x + dubu->reverse_radius * cos(PI / 4 + dubu->direction_indicator);
    y1 = dubu->position_y - dubu->reverse_radius * sin(PI / 4 + dubu->direction_indicator);
    x2 = dubu->position_x + dubu->reverse_radius * cos(3 * PI / 4 + dubu->direction_indicator);
    y2 = dubu->position_y - dubu->reverse_radius * sin(3 * PI / 4 + dubu->direction_indicator);
    x3 = dubu->position_x + dubu->reverse_radius * cos(5 * PI / 4 + dubu->direction_indicator);
    y3 = dubu->position_y - dubu->reverse_radius * sin(5 * PI / 4 + dubu->direction_indicator);
    x4 = dubu->position_x + dubu->reverse_radius * cos(7 * PI / 4 + dubu->direction_indicator);
    y4 = dubu->position_y - dubu->reverse_radius * sin(7 * PI / 4 + dubu->direction_indicator);
    if(fabs(Distance(ball->ball_x,ball->ball_y,x1,y1,x2,y2) - ball->radius) <= 1)
    {
        x = WhetherInSide(ball,dubu);
        if(x==1)
        {
            ball->direction_angle = ReflectAngle(ball->direction_angle,x1,y1,x2,y2);
        }
    }
    if(fabs(Distance(ball->ball_x,ball->ball_y,x2,y2,x3,y3) - ball->radius) <= 3)
    {
        x = WhetherInView(ball,dubu);
        if(x==0)
        {
            ComputeShootAngle(ball,dubu);
            x = WhetherReverse(dubu);
            if(x)
                ReverseToGoal(ball,dubu);
            if(ball->init_speed < 4)   /* prevent speed is too big so that the ball beyond the boundary */
            {
                ball->init_speed = SynthesisSpeed(ball->init_speed,4,ball->direction_angle,dubu->direction_indicator);
                ball->direction_angle = SynthesisAngle(ball->init_speed,4,ball->direction_angle,dubu->direction_indicator);
            }
            else
            {
                ball->init_speed = SynthesisSpeed(ball->init_speed,0.1,ball->direction_angle,dubu->direction_indicator);
                ball->direction_angle = SynthesisAngle(ball->init_speed,0.1,ball->direction_angle,dubu->direction_indicator);
            }
        }
    }
    if(fabs(Distance(ball->ball_x,ball->ball_y,x3,y3,x4,y4) - ball->radius) <= 1)
    {
        x = WhetherInSide(ball,dubu);
        if(x==1)
        {
            ball->direction_angle = ReflectAngle(ball->direction_angle,x3,y3,x4,y4);
        }
    }
    if(fabs(Distance(ball->ball_x,ball->ball_y,x4,y4,x1,y1) - ball->radius) <= 3)
    {
        x = WhetherInView(ball,dubu);
        if(x==0)
        {
            ComputeShootAngle(ball,dubu);
            x = WhetherReverse(dubu);
            if(x)
                ReverseToGoal(ball,dubu);
            if(ball->init_speed < 4)   /* prevent speed is too big so that the ball beyond the boundary */
            {
                ball->init_speed = SynthesisSpeed(ball->init_speed,4,ball->direction_angle,dubu->direction_indicator);
                ball->direction_angle = SynthesisAngle(ball->init_speed,4,ball->direction_angle,dubu->direction_indicator);
            }
            else
            {
                ball->init_speed = SynthesisSpeed(ball->init_speed,0.1,ball->direction_angle,dubu->direction_indicator);
                ball->direction_angle = SynthesisAngle(ball->init_speed,0.1,ball->direction_angle,dubu->direction_indicator);
            }
        }
    }

    return 0;
}

/*以下是二人足球中球的反彈角的計(jì)算*/
int MeetBoundary(Football *ball,FootballPitch *pitch)
{
    /* when the ball meets the boundary */
    if(fabs(ball->ball_x - pitch->position[0]) <= (ball->radius + 2))
    {
        if(ball->ball_y >= 250 || ball->ball_y <= 200)
            ball->direction_angle = ReflectAngle(ball->direction_angle,pitch->position[0],pitch->position[1],pitch->position[0],pitch->position[3]);
    }
    else if(fabs(ball->ball_x - pitch->position[2]) <= (ball->radius + 2))
    {
        if(ball->ball_y >= 250 || ball->ball_y <= 200)
            ball->direction_angle = ReflectAngle(ball->direction_angle,pitch->position[2],pitch->position[1],pitch->position[2],pitch->position[3]);
    }
    else if(fabs(ball->ball_y - pitch->position[1]) <= (ball->radius + 2))
        ball->direction_angle = ReflectAngle(ball->direction_angle,pitch->position[0],pitch->position[1],pitch->position[2],pitch->position[1]);
    else if(fabs(ball->ball_y - pitch->position[3]) <= (ball->radius + 2))
        ball->direction_angle = ReflectAngle(ball->direction_angle,pitch->position[0],pitch->position[3],pitch->position[2],pitch->position[3]);

    /* when the ball meets the angle */
    else if(fabs(Distance(ball->ball_x,ball->ball_y,90,60,70,80) - ball->radius) <= 2)
        ball->direction_angle = ReflectAngle(ball->direction_angle,90,60,70,80);
    else if(fabs(Distance(ball->ball_x,ball->ball_y,550,60,570,80) - ball->radius) <= 2)
        ball->direction_angle = ReflectAngle(ball->direction_angle,550,60,570,80);
    else if(fabs(Distance(ball->ball_x,ball->ball_y,550,390,570,370) - ball->radius) <= 2)
        ball->direction_angle = ReflectAngle(ball->direction_angle,550,390,570,370);
    else if(fabs(Distance(ball->ball_x,ball->ball_y,70,370,90,390) - ball->radius) <= 2)
        ball->direction_angle = ReflectAngle(ball->direction_angle,70,370,90,390);

    return 0;
}

int MeetRobot(Football *ball,Robot *dubu)
{
    float x1,x2,x3,x4,y1,y2,y3,y4;
    int x;

    /* when the ball meets the robot */
    x1 = dubu->position_x + dubu->reverse_radius * cos(PI / 4 + dubu->direction_indicator);
    y1 = dubu->position_y - dubu->reverse_radius * sin(PI / 4 + dubu->direction_indicator);
    x2 = dubu->position_x + dubu->reverse_radius * cos(3 * PI / 4 + dubu->direction_indicator);
    y2 = dubu->position_y - dubu->reverse_radius * sin(3 * PI / 4 + dubu->direction_indicator);
    x3 = dubu->position_x + dubu->reverse_radius * cos(5 * PI / 4 + dubu->direction_indicator);
    y3 = dubu->position_y - dubu->reverse_radius * sin(5 * PI / 4 + dubu->direction_indicator);
    x4 = dubu->position_x + dubu->reverse_radius * cos(7 * PI / 4 + dubu->direction_indicator);
    y4 = dubu->position_y - dubu->reverse_radius * sin(7 * PI / 4 + dubu->direction_indicator);
    if(fabs(Distance(ball->ball_x,ball->ball_y,x1,y1,x2,y2) - ball->radius) <= 3)
    {
        x = WhetherInSide(ball,dubu);
        if(x==1)
        {
            ball->direction_angle = ReflectAngle(ball->direction_angle,x1,y1,x2,y2);
        }
    }
    if(fabs(Distance(ball->ball_x,ball->ball_y,x2,y2,x3,y3) - ball->radius) <= 5)
    {
        x = WhetherInView(ball,dubu);
        if(x==0)
        {
            ComputeShootAngle(ball,dubu);
            x = WhetherReverse(dubu);
            if(x)
                ReverseToGoal(ball,dubu);
            if(ball->init_speed < 4)   /* prevent speed is too big so that the ball beyond the boundary */
            {
                ball->init_speed = SynthesisSpeed(ball->init_speed,4,ball->direction_angle,dubu->direction_indicator);
                ball->direction_angle = SynthesisAngle(ball->init_speed,4,ball->direction_angle,dubu->direction_indicator);
            }
            else
            {
                ball->init_speed = SynthesisSpeed(ball->init_speed,0.1,ball->direction_angle,dubu->direction_indicator);
                ball->direction_angle = SynthesisAngle(ball->init_speed,0.1,ball->direction_angle,dubu->direction_indicator);
            }
        }
    }
    if(fabs(Distance(ball->ball_x,ball->ball_y,x3,y3,x4,y4) - ball->radius) <= 3)
    {
        x = WhetherInSide(ball,dubu);
        if(x==1)
        {
            ball->direction_angle = ReflectAngle(ball->direction_angle,x3,y3,x4,y4);
        }
    }
    if(fabs(Distance(ball->ball_x,ball->ball_y,x4,y4,x1,y1) - ball->radius) <= 5)
    {
        x = WhetherInView(ball,dubu);
        if(x==0)
        {
            ComputeShootAngle(ball,dubu);
            x = WhetherReverse(dubu);
            if(x)
                ReverseToGoal(ball,dubu);
            if(ball->init_speed < 4)   /* prevent speed is too big so that the ball beyond the boundary */
            {
                ball->init_speed = SynthesisSpeed(ball->init_speed,4,ball->direction_angle,dubu->direction_indicator);
                ball->direction_angle = SynthesisAngle(ball->init_speed,4,ball->direction_angle,dubu->direction_indicator);
            }
            else
            {
                ball->init_speed = SynthesisSpeed(ball->init_speed,0.1,ball->direction_angle,dubu->direction_indicator);
                ball->direction_angle = SynthesisAngle(ball->init_speed,0.1,ball->direction_angle,dubu->direction_indicator);
            }
        }
    }

    return 0;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人在线色| 精品国产污网站| 色吧成人激情小说| 成人精品视频一区二区三区尤物| 国产一区二三区| 国产精品一线二线三线| 国产一区二区日韩精品| 国产一区二区三区免费观看| 狠狠色狠狠色综合日日91app| 美女尤物国产一区| 国产在线精品视频| 国产精品66部| 成人av网站大全| 91成人网在线| 91精品国产综合久久香蕉的特点| 欧美一区二视频| 久久亚洲精品小早川怜子| 久久精品欧美日韩精品| 国产精品国产精品国产专区不蜜| 亚洲精品视频免费观看| 午夜精品免费在线| 秋霞电影一区二区| 国产精品一区二区你懂的| 成人av电影免费观看| 91老师国产黑色丝袜在线| 欧美亚洲高清一区二区三区不卡| 欧美精品高清视频| 国产午夜精品一区二区三区嫩草| 国产精品国产三级国产普通话蜜臀 | 亚洲一二三四在线观看| 午夜欧美2019年伦理| 久久99精品国产91久久来源| 国产福利一区在线| 色呦呦一区二区三区| 91.麻豆视频| 久久精品视频一区| 一区二区三区四区乱视频| 日韩成人精品在线| 床上的激情91.| 欧美日韩一区在线观看| 欧美精品一区二| 亚洲另类在线视频| 麻豆国产91在线播放| 成人精品免费网站| 欧美色区777第一页| 欧美精品一区二区久久婷婷| 亚洲欧洲成人精品av97| 秋霞电影一区二区| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美日韩中文精品| 国产精品色哟哟| 首页国产欧美日韩丝袜| 国产91丝袜在线播放| 欧美日韩性生活| 国产精品少妇自拍| 午夜精品久久久久久久99水蜜桃| 国产不卡免费视频| 欧美一区二区精品在线| 亚洲色图色小说| 国产一区二区三区美女| 欧美日韩国产综合视频在线观看| 国产精品色在线| 激情综合色播激情啊| 在线免费视频一区二区| 久久久久久夜精品精品免费| 五月综合激情婷婷六月色窝| 成人爽a毛片一区二区免费| 7777女厕盗摄久久久| 亚洲人成伊人成综合网小说| 国内国产精品久久| 欧美区视频在线观看| 亚洲视频中文字幕| 激情都市一区二区| 777午夜精品免费视频| 一区二区国产视频| av在线综合网| 国产精品视频一二三| 久久99深爱久久99精品| 欧美浪妇xxxx高跟鞋交| 亚洲黄色尤物视频| av电影在线不卡| 国产精品午夜电影| 91蜜桃传媒精品久久久一区二区| 欧美精品一区二区三区蜜桃| 午夜av一区二区| 欧美日韩中文字幕一区二区| 亚洲欧美日韩中文播放| 99久久免费国产| 国产女人水真多18毛片18精品视频 | 国产美女一区二区三区| 91精品国产色综合久久| 性做久久久久久| 欧美日韩高清一区二区不卡| 亚洲欧美国产77777| 91视频一区二区三区| 中文字幕在线不卡一区| 成人激情图片网| 中文字幕制服丝袜一区二区三区| 从欧美一区二区三区| 欧美激情一二三区| 成人性视频网站| 欧美极品xxx| 成人免费视频一区| 国产精品久久网站| 成人v精品蜜桃久久一区| 国产精品色在线观看| 99精品在线免费| 亚洲另类春色国产| 欧美日韩在线亚洲一区蜜芽| 亚洲国产精品一区二区尤物区| 在线观看成人免费视频| 香蕉成人伊视频在线观看| 7777精品伊人久久久大香线蕉 | 亚洲一线二线三线视频| 一本到高清视频免费精品| 亚洲精品免费一二三区| 欧美日韩一区二区三区高清 | 国产麻豆精品在线| 欧美激情综合网| 91美女在线看| 亚洲国产va精品久久久不卡综合| 欧美日韩国产一级二级| 免费观看91视频大全| 久久久一区二区三区捆绑**| 成人在线一区二区三区| 亚洲欧美韩国综合色| 911国产精品| 国产精品538一区二区在线| 亚洲欧美日韩电影| 91精品国产黑色紧身裤美女| 国产在线视视频有精品| 国产精品欧美一区喷水| 在线免费一区三区| 麻豆成人综合网| 婷婷开心激情综合| 26uuu国产日韩综合| 99久久久无码国产精品| 天堂蜜桃91精品| 久久精品一二三| 一本大道久久精品懂色aⅴ | 欧美午夜理伦三级在线观看| 青草av.久久免费一区| 欧美激情一区二区三区| 欧美视频中文字幕| 国产美女在线观看一区| 一区二区免费在线| 久久久噜噜噜久噜久久综合| 97久久超碰国产精品| 日韩精品成人一区二区在线| 久久精品免视看| 欧美精品一二三四| 东方aⅴ免费观看久久av| 午夜久久久久久久久| 国产欧美一区二区在线| 欧美另类高清zo欧美| 成人在线视频首页| 美脚の诱脚舐め脚责91| 日韩一区在线免费观看| 日韩欧美一二三四区| 99精品国产99久久久久久白柏| 日本亚洲欧美天堂免费| 国产精品二区一区二区aⅴ污介绍| 91麻豆精品国产综合久久久久久 | 777奇米成人网| 99国产麻豆精品| 精品一区二区三区免费毛片爱| 亚洲美女淫视频| 国产午夜一区二区三区| 91精品国产一区二区| 日本精品视频一区二区三区| 国产乱理伦片在线观看夜一区| 婷婷成人综合网| 亚洲精品午夜久久久| 欧美国产一区在线| 日韩精品专区在线| 在线播放日韩导航| 91黄色免费观看| 99国产精品国产精品久久| 精品一区二区综合| 免费成人av资源网| 天堂影院一区二区| 亚洲午夜一二三区视频| 国产精品国产三级国产aⅴ入口| 欧美变态tickle挠乳网站| 欧美日韩一区二区三区高清| 91一区二区在线| 丁香激情综合国产| 国产尤物一区二区在线| 日日骚欧美日韩| 亚洲永久精品国产| 亚洲免费观看高清完整| 国产精品麻豆99久久久久久| 精品国产乱码久久久久久蜜臀 | 亚洲高清不卡在线| 亚洲图片你懂的| 国产精品久久久久久久久搜平片| 久久精品一区二区三区av| 久久久久久电影| 久久综合九色综合欧美98| 日韩一级欧美一级|