zoukankan      html  css  js  c++  java
  • [Unity游戏开发]向量在游戏开发中的应用(二)

    本文已同步发表在CSDN:http://blog.csdn.net/wenxin2011/article/details/50972976


    上一篇博客中讲了利用向量方向的性质来解决问题。这篇博客将继续用一个简单的小例子来讲解如何将向量的点乘性质应用到实际的游戏开发中。

    向量点乘的几何定义

    设二维空间内有两个向量UV,它们的夹角为θ([0, π]),则内积定义为以下实数:
    向量点乘的公式:U·V = |U||V|cosθ
    根据该公式可以退到下面三条结论:
    1. U·V > 0,表示向量UV之间的夹角小于90度(锐角)
    2. U·V < 0,表示向量UV之间的夹角大于90度(钝角)
    3. U·V = 0,表示向量UV之间的夹角为90度(相互垂直)
    4. U·V = 1,表示向量UV的方向相同
    5. U·V = -1,表示向量UV的方向相反

    关于向量点乘的其他定义、规律以及应用有兴趣的朋友可以参考百度百科,这里就不再啰嗦了。本篇博客主要讲如何将以上三条结论应用到游戏开发中。

    向量点乘的应用情景

    1. 根据向量点乘公式求两个向量的夹角大小。
    2. 根据结论1和2判断两个向量的夹角,可以用来限定两个向量的夹角。
    3. 根据结论3判断两个向量是否垂直。
    4. 根据结论4和5可以判断方位。可判断一个物体位于另一个物体的前面还是后面(或者左边还是右边)。

    向量点乘如何判断一个物体在另一个物体的的前面还是后面呢?在《3D数学基础:图形与游戏开发》这本书中对这点做了很好的解释。下面贴出书中原话:

    既然能判断前面还是后面,当然也能判断左边还是右边了,只是选择的方向向量不同而已,这里留给读者自己思考。


    声明:本文欢迎转载和分享,但是请尊重作者的劳动成果,转载分享时请注明出处:http://www.cnblogs.com/davidsheh/p/5353304.html 。同时,码字实在不易,如果你觉得笔者分享的笔记对你有点用处,请顺手点击下方的推荐,谢谢!

  • 相关阅读:
    “神一般存在”的印度理工学院到底有多牛?
    MobaXterm
    VC Debug和Release区别
    Mock 模拟测试简介及 Mockito 使用入门
    JUnit单元测试教程(翻译自Java Code Geeks)
    JUnit4单元测试入门教程
    单元测试利器 JUnit 4
    深入探索 JUnit 4
    JUnit
    Java泛型之类型擦除
  • 原文地址:https://www.cnblogs.com/davidsheh/p/5353304.html
Copyright © 2011-2022 走看看