美文网首页
OpenGLES6-汽⻋碰撞

OpenGLES6-汽⻋碰撞

作者: AlanGe | 来源:发表于2020-06-29 12:48 被阅读0次

    汽⻋碰撞

    判断是否碰撞上 ?
    汽车A的直径 > 汽车AB之间的间隔距离,则2车相撞了了。
    汽车A的直径 < 汽车AB之间的间隔距离,则2车没有碰撞。


    A速度 velocity B 速度 otherVelocity A 位置 position B 位置 otherPosition

    directionToOtherCar = otherPosition - position

    可以得到一条直线,如果汽⻋AB碰撞就会发生在这一条线上

    理解为A汽⻋行驶移动的⽅向

    negDirectionToOtherCar = directionToOtherCar 的相反⽅方向向量量

    理解为B汽⻋行行驶的移动的方向

    可以把directionToOtherCar、negDirectionToOtherCar理解为行驶方向

    汽⻋碰撞

    // AB碰撞之后速度下降
    GLfloat A_DotProduct = GLKVector3DotProduct(ownVelocity, negDirectionToOtherCar);

    //A汽⻋方向的碰撞后的速度值
    GLKVector3 tanOwnVelocity = GLKVector3MultiplyScalar(negDirectionToOtherCar,A_DotProduct);

    //更新A汽车碰撞后速度 ownVelocity - tanOwnVelocity
    self.velocity = GLKVector3Subtract(ownVelocity, tanOwnVelocity);

    Yaw,Pitch,Roll

    http://blog.sina.com.cn/s/blog_8e6c5b220102wtpd.html

    1.欧拉角是什么?

    欧拉角是由3个角组成,这3个角分别是yaw,Pitch,Roll。很难翻译这3个词。Yaw 表示绕Y轴旋转的⻆度,Pitch表示绕X轴旋转角度,Roll表示绕Z轴旋转的角度。


    Yaw 偏移
    Pitch 投掷、倾斜、坠落
    Roll 转动
    回忆,AV Foundation 人脸识别课中就涉及到处理 YawAngle 与 RollAngle

    image.png

    欧拉角中的旋转


    这是绕相关轴旋转,乘以相关 矩阵即可

    欧拉角中的旋转


    欧拉角中的3个角,可以转为 矩阵与矩阵相乘

    Demo: 08-汽车碰撞

    相关文章

      网友评论

          本文标题:OpenGLES6-汽⻋碰撞

          本文链接:https://www.haomeiwen.com/subject/otrofktx.html