⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vector.h

📁 [Game.Programming].Academic - Graphics Gems (6 books source code)
💻 H
字号:
// Floating point vector library#ifndef VECTORS_INCLUDED__#include <math.h>class point     {    private:    int refcount;    public:     double x, y;    point()	{	refcount = 0;	}    point( const double _x, const double _y )	{	x = _x, y = _y;	refcount = 1;	}    point( const point &p )	{	x = p.x, y = p.y; refcount = 1;	}    point( const point &p, const int count )	{	x = p.x, y = p.y; refcount = count;	}    point( const point *a, const point *b, const int count )	{	x = ( a->x + b->x ) * 0.5;	y = ( a->y + b->y ) * 0.5;	refcount = count;	}    friend class Bezier;    };class vector    {    public:    double x, y;    vector()	{	;	}    vector( const vector &v )	{	x = v.x, y = v.y;	}    vector( const double _x, const double _y )	{	x = _x, y = _y;	}    };inline vector operator-(const point a, const point b ) // p - p = v    {    return vector( a.x - b.x, a.y - b.y );    }    inline vector operator-(const vector a, const vector b ) // v - v = v    {    return vector( a.x - b.x, a.y - b.y );    }    inline point operator+(const point *a, const vector b ) // p + v = p    {    return point( a->x + b.x, a->y + b.y );    }    inline point operator+(const point a, const vector b ) // p + v = p    {    return point( a.x + b.x, a.y + b.y );    }    inline vector operator+(const vector a, const vector b ) // v + v = v    {    return vector( a.x + b.x, a.y + b.y );    }    inline vector operator*(const double s, const vector v ) // sv = v    {    return vector( s * v.x, s * v.y );    }    inline vector operator*(const vector v, const double s) // v s = v    {    return vector( s * v.x, s * v.y );    }    inline double operator*(const vector a, const vector b) // v * v = s (dot product)    {    return a.x * b.x + a.y * b.y;    }    inline point mid( const point *a, const point *b )     {    return point( ( a->x + b->x ) * 0.5, ( a->y + b->y ) * 0.5 );    }    inline vector vabs( const vector a )    {    return vector( fabs( a.x ), fabs( a.y ) );    };#define VECTORS_INCLUDED__#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -