Witam mam problem z dodanie wektorów w pętli. Dokładnie polecenie: Określenie czy punkt leży wewnątrz wielokąta (obliczenia wykonać w pętli) W każdym kroku obliczeniowym należy określić wektory A i B. Wyznaczyć kąt miedzy wektorami A i B i dodać do pozostałych. Po wykonaniu tych kroków sprawdzić czy AngleSum jest wieksze lub równe 2PI . Jeżeli badany punkt znajduje się wewnątrz wielokąta.
Chodzi o funkcję double AngleBetweenVectors(CVECTOR A, CVECTOR B) nie wiem czy dobrze przekazuje argumenty do funkcji.
#include "math.h"
#include "conio.h"
#include "Calculations.h"
double VectorLength(CVECTOR v){
return sqrt(v.x*v.x + v.y*v.y + v.z*v.z );
}
double DotProduct(CVECTOR v1, CVECTOR v2){
return ((v1.x + v2.x)*(v1.y*v2.y)*(v1.z*v2.z));
}
double AngleBetweenVectors(CVECTOR A, CVECTOR B){
double AngleAB;
AngleAB = acos(DotProduct(A,B)/VectorLength(A)*VectorLength(B));
return AngleAB;
}
bool InsidePolygon(CVECTOR A, CVECTOR B){
//CVECTOR A,B;
CPOINT Polygon;
CPOINT Point;
double AngleSum=0;
A.x = Polygon[0].x - Point.x;
A.y = Polygon[0].y - Point.y;
A.z = Polygon[0].z - Point.z;
B.x = Polygon[1+1].x - Point.x;
B.y = Polygon[1+1].y - Point.y;
B.z = Polygon[1+1].z - Point.z;
AngleSum = AngleSum + AngleBetweenVectors(A,B);
}
if(AngleSum>=2*M_PI)
return true;
else
return false;
}
Celem jest sprawdzić czy punkt znajduję się w 5-kącie
Proszę o pomoc.