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()则是对向量进行两个坐标系之间的转换。

  • 相关阅读:
    Ubuntu下添加定时任务执行php文件
    linux的scp命令可以在linux服务器之间复制文件和目录
    Linux下OpenSSL加密解密压缩文件(AES加密压缩文件)
    解决远程连接mysql很慢的方法(mysql_connect 打开连接慢)
    PHP URL参数获取方式的四种例子
    url格式化函数http_build_query() 和parse_str() 函数
    php 调用 webservice 中文乱码解决方案
    Linux添加vsftp账户和设置目录权限
    PHP 的 HMAC_SHA1算法 实现
    MySQL多表关联查询数量
  • 原文地址:https://www.cnblogs.com/hometown/p/3757338.html
Copyright © 2011-2022 走看看