2维,3维向量单位化

向量是有方向和大小的量,所谓单位化就是保持其方向不变,将其长度化为1  有一向量a(标箭头),其长度为绝对值a,单位化为(a/绝对值a)

公式:

向量a的坐标为(x,y),那么其长度(又称为模)为:√(x²+y²)。单位化后为(x,y)/√(x²+y²)或(x/√(x²+y²) , y/√(x²+y²))

 

代码实现方式:

public void normalized2D(Vector3 pos) 
    {
        Vector3 temp = Vector3.zero;

        temp.x = (float)(pos.x / (Math.Sqrt(pos.x * pos.x + pos.y * pos.y + pos.z * pos.z)));
        temp.y = (float)(pos.y / (Math.Sqrt(pos.x * pos.x + pos.y * pos.y + pos.z * pos.z)));
        temp.z = (float)(pos.z / (Math.Sqrt(pos.x * pos.x + pos.y * pos.y + pos.z * pos.z)));

        Debug.Log(temp);
    }


    public void normalized3D(Vector2 pos)
    {
        Vector2 temp = Vector2.zero;

        temp.x = (float)(pos.x / (Math.Sqrt(pos.x * pos.x + pos.y * pos.y)));
        temp.y = (float)(pos.y / (Math.Sqrt(pos.x * pos.x + pos.y * pos.y)));

        Debug.Log(temp);
    }
posted @ 2015-08-09 22:52 盘子脸 阅读(...) 评论(...) 编辑 收藏