码迷,mamicode.com
首页 > 其他好文 > 详细

2维,3维向量单位化

时间:2015-08-09 23:51:10      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

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

公式:

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

 

代码实现方式:

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);
    }

2维,3维向量单位化

标签:

原文地址:http://www.cnblogs.com/plateFace/p/4716649.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!