forked from uyras/partsEngine
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Vect.h
51 lines (38 loc) · 2.63 KB
/
Vect.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#ifndef VECT_H
#define VECT_H
#include <iostream>
using namespace std;
class Vect {
public:
double x, y, z; //основные параметры векторов
Vect(); //конструктор нулевого вектора
Vect(double x, double y, double z); //конструктор направленного вектора
double scalar(Vect); //Скалярное произведение двух векторов
double space(const Vect &b) const; //расстояние между векторами
double space_2(const Vect &b) const; //расстояние между векторами в квадрате
Vect radius(const Vect &b) const; //возвращает радиус-вектор
double length() const; //длина вектора
void setXYZ(double x, double y, double z); //задать вектор
void rotate(); //вращать вектор на 180 градусов
void toAbs(); //переводит вектор в абсолютные величины из относительных
void toRel(); //переводит вектор в относительные величины из абсолютных (не точно, что работает)
void draw() const; //выводит вектор на экран
void setUnitary(); //делает вектор едииничной длины
Vect normalize(); //возвращает нормализованный вектор
double angle(); //возвращает угол наклона полярной системы координат в радианах, работает только в 2D
double grade(); //возвращает угол наклона полярной системы координат в градусвх
Vect operator=(const Vect&); //присваивание вектора
Vect operator+=(const Vect&); //оператор сложения
Vect operator+(const Vect&) const;
Vect operator-(const Vect&) const;
Vect operator*(const double num) const;
Vect operator*=(const double num);
Vect operator/(const double num) const;
Vect operator/=(const double num);
bool operator==(const Vect&) const;
inline bool operator!=(const Vect& a) const {return !this->operator ==(a);}
static Vect crossProduct(const Vect& vect1, const Vect& vect2); //векторное произведение двух векторов
static Vect normal(const Vect& vect1, const Vect& vect2); //нормаль к плоскости векторов
friend ostream &operator<<(ostream & os, const Vect& p);
};
#endif // VECT_H