栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Unity3D

【Unity学习 3D基础数学编程】

Unity3D 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Unity学习 3D基础数学编程】

2.坐标系
  1. 2D坐标系:一般以屏幕左上角或者左下角为原点。 3D坐标系:左手系(默认使用的)和右手系,Y UP和Z UP。
3.向量
  1. 向量的特性:只能位移,不能缩放、旋转。
  2. 两个不相等的向量确定也给平行四边形、确定一个平面、确定一个三角形等。
  3. 可以用单位向量控制玩家的速度。
  4. now.Normalize(); 规范化向量,求这个向量的单位向量.
  5. 向量叉积:u x v可以计算平面的法向量。
  6. 向量点积:可以用来编写shader来模拟光照的颜色效果。
4.矩阵
  1. 对于一个空间点,设T为平移矩阵,S为缩放矩阵,R为旋转矩阵,则V * R * S * T为变化后的位置,但这样计算效率低,可以通过先计算RTS,然后再直接V * RTS,RTS就是代表了旋转、平移、缩放的矩阵。
平面及射线
  1. 射线的定义:P0为起点,u为单位向量,则P(t)=P0+tu;t为射线长度
  2. 平面的定义:P0为平面上的一点,n为法向量,p为平面任意一点,则n(p - p0)=0
  3. 射线与平面关系:t = (n.p1 - n.p0) / n.u;若t>=0,则射线与平面相交,且交点为p0+tu,若t<0,则不相交。
Vector3D类
public class Vector3D
{

    public float x, y, z;



    public Vector3D(float x=0f,float y=0f,float z=0f)
    {
        this.x = x;
        this.y = y;
        this.z = z;
        
    }
    




    public Vector3D add(Vector3D vec)
    {
        Vector3D ret = new Vector3D(x, y, z);
        ret.x += ret.x;
        ret.y += ret.y;
        ret.z += ret.z;
        return ret;
    }

    public Vector3D sub(Vector3D vec)
    {
        Vector3D ret = new Vector3D(x, y, z);
        ret.x -= vec.x;
        ret.y -= vec.y;
        ret.z -= vec.z;
        return ret;
    }

    public Vector3D corss(Vector3D vec)
    {
        Vector3D ret = new Vector3D();
        ret.x = y * vec.z - z * vec.y;
        ret.y = z * vec.x - x * vec.z;
        ret.z = x * vec.y - y * vec.x;
        return ret;
    }



    public void normalize()
    {
        float length = (float)System.Math.Sqrt(x * x + y * y + z * z);
        x /= length;
        y /= length;
        z /= length;
    }
    public override string ToString()
    {
        return string.Format("(" + x + "," + y + "," + z + ")");
    }

    public static Vector3D operator + (Vector3D lv,Vector3D rv)
    {
        return lv.add(rv);
    }

    public static Vector3D operator - (Vector3D lv,Vector3D rv)
    {
        return lv.sub(rv);
    }


}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/900243.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号