www.pudn.com > CurveEditor.rar > VectorOperator.cpp
/* * File name: VectorOperator.cpp * Version: 1.0.0.1 * Programmer: A.George * Organization: * Date(start): 10/7/1999 * Date(finish): * Description: This module defines a set of operator for vector calculation. */ #include "stdafx.h" #include#include "VectorOperator.h" VECTOR operator + ( VECTOR& a, VECTOR& b) { VECTOR c; c.x = a.x + b.x; c.y = a.y + b.y; c.z = a.z + b.z; return c; } VECTOR operator - (VECTOR& a, VECTOR& b) { VECTOR c; c.x = a.x - b.x; c.y = a.y - b.y; c.z = a.z - b.z; return c; } /* Dot product */ double operator *(VECTOR& a, VECTOR& b) { return a.x*b.x + a.y*b.y + a.z*b.z; } /* Number product */ VECTOR operator *(double k, VECTOR&a) { VECTOR b; b.x = k*a.x; b.y = k*a.y; b.z = k*a.z; return b; } /* Cross product */ VECTOR operator %(VECTOR& a, VECTOR& b) { VECTOR c; c.x = a.y*b.z - a.z*b.y; c.y = a.z*b.x - a.x*b.z; c.z = a.x*b.y - a.y*b.x; return c; } VECTOR2D operator *(double k, VECTOR2D& a) { VECTOR2D c; c.x = k*a.x; c.y = k*a.y; return c; } double Module(VECTOR2D a) { return sqrt(a.x*a.x +a.y*a.y); } double Module(VECTOR a) { return sqrt(a.x*a.x + a.y*a.y + a.z*a.z); } VECTOR2D operator /(VECTOR2D a, double k) { VECTOR2D b; b.x = a.x/k; b.y = a.y/k; return b; } VECTOR2D operator *(VECTOR2D a, double k) { VECTOR2D b; b.x = a.x*k; b.y = a.y*k; return b; }