首页 > 其他 > 详细

2维,3维向量单位化

时间:2015-08-09 23:48:17      阅读:360      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!