zoukankan      html  css  js  c++  java
  • U3D游戏开发基础

    向量:

    1. 向量的长度,即向量的模。计算公式为向量各个分量的平方和,然后开平方。

       在D3DX库中,方法为:FLOAT  D3DXVec3Length(CONST  D3DXVECTOR3 * pV);

       在U3D中,成员变量为:magnitude

    2. 向量的规范化,使向量的模变为1。通过将每个分量除以向量的模可以使向量规范化。

    在D3DX库中,方法为:D3DXVECTOR3 * D3DXVec3Normalize(

     D3DXVECTOR3 * pOut ,  // 输出结果

     CONST D3DXVECTOR3 * pV  //需要规范化的向量

    )

    在U3D中,成员变量为:normalized

    3. 数乘。数值与向量的各分量相乘,可对向量进行缩放。正数时向量方向不变,负数时向量方向相反。

    4. 点积。等于向量对应的分量相乘,然后求和。根据余弦定理可以发现,等于两个向量的模的乘积再乘以两个向量夹角的余弦。

    在D3DX库中,方法为:FLOAT D3DXVec3Dot(

    CONST D3DXVECTOR3 * pV1, CONST D3DXVECTOR3 * pV2)

    在U3D中,方法:public static float Dot(Vector3 lhs, Vector3 rhs);

    5. 叉积。结果为另一个向量,向量U,V的叉积,运算得向量P与U和V都正交。

    P=U×V=[(UYVZ-UZVY),(UZVX-UXVZ),(UXVY-UYVX)]

    在D3DX库中,方法为:D3DXVECTOR3 * D3DXVec3Cross(

    D3DXVECTOR3 * pOut,

    CONST D3DXVECTOR3 * pV1,

    CONST D3DXVECTOR3 * pV2

    )

    在U3D中,方法:public static Vector3 Cross(Vector3 lhs, Vector3 rhs);

    四元数:

    四元数包含一个标量和一个三维向量。四元数Q可以记做:Q=[w,(x,y,z)]

    在U3D中四元数用Quaternion类来表示。

    其常用的变量和函数如下截图表:

    在游戏对象的Transform组件中,变量Transform.rotation为对象在世界坐标系下的旋转,Transform.localRotation为对象在父对象的局部坐标系下的旋转。两个变量类型为四元数,改变他们就可以设置对象的旋转了。

    如以下的转换或运算:

            var angle = 0.0;//旋转角度

            var axis = Vector3.zero; //旋转轴。

            transform.rotation.ToAngleAxis(angle, axis);

     

            transform.rotation = Quaternion.identity;//局部坐标系的坐标轴与世界坐标系的坐标轴平行

     

    Transform. TransformPoint()方法将坐标点从局部坐标系转换到世界坐标系;

    Transform. InverseTransformPoint ()方法将坐标点从世界坐标系转换到局部坐标系;

    Transform.TransformDirection()和Transform.InverseTransformDirection()则是对向量进行两个坐标系之间的转换。

  • 相关阅读:
    CodeForces1214B
    CodeForces1214A
    LuoGuP4551最长异或路径
    GXOI2018 滚粗记
    [BZOJ 4818/LuoguP3702][SDOI2017] 序列计数 (矩阵加速DP)
    [LuoguP3808] 【模板】AC自动机(简单版)数组版
    [NOIP 2016D2T2/Luogu P1600] 天天爱跑步 (LCA+差分)
    [CF160D]Edges in MST (最小生成树+LCA+差分)
    [Luogu P2891/POJ 3281/USACO07OPEN ]吃饭Dining
    [BZOJ 2287/POJ openjudge1009/Luogu P4141] 消失之物
  • 原文地址:https://www.cnblogs.com/hometown/p/3757338.html
Copyright © 2011-2022 走看看