• 二维向量类


    class Vector2d
    {
    public:
    	Vector2d():x(0.0),y(0.0){};
    
    	Vector2d(double _x,double _y) :x(_x),y(_y){}
    
    	Vector2d(const Vector2d& _vect2d)
    	{
    		x = _vect2d.x;
    		y = _vect2d.y;
    	}
    
    	double dotProduct(const Vector2d& vec2d) const
    	{
    		return vec2d.x*x + vec2d.y*y;
    	}
    
    	void normal()
    	{
    		double dLen = length();
    		x = x / dLen;
    		y = y / dLen;
    	}
    
    	double length() const { return sqrt(x*x+y*y);}
    
    	double angle()
    	{
    
    	}
    
    	Vector2d rotateBy(double dAngle) const    //角度旋转公式推导(使用三角变换来推导)
    	{
    		return Vector2d(x*cos(dAngle)-y*sin(dAngle),x*sin(dAngle)+y*cos(dAngle));
    	}
    
    	Vector2d& negate()    //向量求反
    	{
    		return Vector2d(-x,-y);
    	}
    
    	Vector2d  operator * (double dScl) const
    	{
    		return Vector2d(dScl*x,dScl*y);
    	}    
    
    	Vector2d operator + (const Vector2d & vec)
    	{
    		return Vector2d(x+vec.x, y+vec.y);
    	}
    
    	Vector2d& operator += (const Vector2d& vec)
    	{
    		x = x + vec.x;
    		y = y + vec.y;
    		return *this;
    	}
    
    	Vector2d operator - (const Vector2d& vec)
    	{
    		return Vector2d(x-vec.x,y-vec.y);
    	}
    	Vector2d& operator -= (const Vector2d& vec)
    	{
    		x = x-vec.x;
    		y = y-vec.y;
    		return *this;
    	}
    
    public:
    	double x,y;
    };
    

      

  • 相关阅读:
    SQL server 数据库安装
    jmeter接口测试
    jmeter测试之-脚本制作
    HTTP协议
    计算机原理
    Ubuntu 14.04 搭建 LNMP
    pycharm使用技巧
    hihoCoder #1867 GCD
    Mail.Ru Cup 2018 Round 2 Problem C Lucky Days
    C++ Essentials 之 lower_bound 和 upper_bound 的比较函数格式不同
  • 原文地址:https://www.cnblogs.com/sdnyzhl/p/5453158.html
Copyright © 2020-2023  润新知