This commit is contained in:
2025-10-04 11:42:17 +05:00
parent a0d46ae89d
commit 13122d17c2
56 changed files with 127 additions and 38438 deletions

View File

@ -175,19 +175,19 @@ int RandInt(int a, int b)
//Расстояние от начала декартовых координат до заданной точки
float fnGetDistans(RfPointXYZ p)
{
return sqrt(sqr(p.x) + sqr(p.y) + sqr(p.z));
return (float)sqrt(sqr(p.x) + sqr(p.y) + sqr(p.z));
}
//------------------------------------------------------------------------------
//Расстояние между 2мя точками на плоскости в декартовых координатах
float fnGetDistans2d(RfPointXY PointXY1, RfPointXY PointXY2)
{
return sqrt(fabs(sqr(PointXY1.x - PointXY2.x) + sqr(PointXY1.y - PointXY2.y)));
return (float)sqrt(fabs(sqr(PointXY1.x - PointXY2.x) + sqr(PointXY1.y - PointXY2.y)));
}
//------------------------------------------------------------------------------
//Расстояние между 2мя точками в пространстве в декартовых координатах
float fnGetDistans3d(RfPointXYZ PointXYZ1, RfPointXYZ PointXYZ2)
{
return sqrt(fabs(sqr(PointXYZ1.x - PointXYZ2.x) + sqr(PointXYZ1.y - PointXYZ2.y) + sqr(PointXYZ1.z - PointXYZ2.z)));
return (float)sqrt(fabs(sqr(PointXYZ1.x - PointXYZ2.x) + sqr(PointXYZ1.y - PointXYZ2.y) + sqr(PointXYZ1.z - PointXYZ2.z)));
}
//------------------------------------------------------------------------------
float sqr(float val)
@ -286,7 +286,7 @@ void CalcNormals(float x0, float y0, float z0, float x1, float y1, float z1, flo
a = (y1 - y0)*(z2 - z0) - (y2 - y0)*(z1 - z0);
b = (x2 - x0)*(z1 - z0) - (x1 - x0)*(z2 - z0);
c = (x1 - x0)*(y2 - y0) - (y1 - y0)*(x2 - x0);
r = sqrt(a*a + b*b + c*c);
r = (float)sqrt(a*a + b*b + c*c);
if (r != 0) r = 1 / r;
xr = a*r;
yr = b*r;
@ -333,7 +333,7 @@ void fnCalcCircle(RfPointXYZ p1, RfPointXYZ p2, RfPointXYZ p3, float &a, float &
{ //всё в 1 точке
r = 0;
}
r = sqrt((a - p1.x)*(a - p1.x) + (b - p1.y)*(b - p1.y));
r = (float)sqrt((a - p1.x)*(a - p1.x) + (b - p1.y)*(b - p1.y));
}
//------------------------------------------------------------------------------
/** Из декартовых в полярные
@ -345,13 +345,13 @@ r - радиус
void NormalInPolar3d(float x, float y, float z, float &AngleH, float &AngleV, float &r)
{
if (x == 0.0) x = 0.0000001f;
r = sqrt(x*x + y*y + z*z);
AngleH = fabs(atan(y / x));
r = (float)sqrt(x*x + y*y + z*z);
AngleH = (float)fabs(atan(y / x));
if ((x <= 0) && (y <= 0)) AngleH = (float)(PI - AngleH);
if ((x<0) && (y>0)) AngleH = (float)(AngleH + PI);
if ((x >= 0) && (y >= 0)) AngleH = (float)(2.0f*PI - AngleH);
if (AngleH>PI*2.0f) AngleH = (float)(AngleH - PI*2.0f);
AngleV = fabs(atan(z / sqrt(x*x + y*y)));
AngleV = (float)fabs(atan(z / sqrt(x*x + y*y)));
if (z<0) AngleV = -AngleV;
}
//------------------------------------------------------------------------------
@ -363,8 +363,8 @@ r - радиус
void NormalInPolar2d(float x, float y, float &Angle, float &r)
{
if (x == 0.0) x = 0.0000001f;
r = sqrt(x*x + y*y);
Angle = fabs(atan(y / x));
r = (float)sqrt(x*x + y*y);
Angle = (float)fabs(atan(y / x));
if ((x <= 0) && (y <= 0)) Angle = (float)(PI - Angle);
if ((x<0) && (y>0)) Angle = (float)(Angle + PI);
if ((x >= 0) && (y >= 0)) Angle = (float)(2.0f*PI - Angle);
@ -560,9 +560,9 @@ RfPointXY ApproachPoint2d(RfPointXY PointXY1, RfPointXY PointXY2, float Distans)
float dist;
RfPointXY LengthXY;
LengthXY.x = fabs(PointXY1.x - PointXY2.x);
LengthXY.y = fabs(PointXY1.y - PointXY2.y);
dist = sqrt(sqr(LengthXY.x) + sqr(LengthXY.y));
LengthXY.x = (float)fabs(PointXY1.x - PointXY2.x);
LengthXY.y = (float)fabs(PointXY1.y - PointXY2.y);
dist = (float)sqrt(sqr(LengthXY.x) + sqr(LengthXY.y));
dist = Distans / dist;
PointXY2.x = PointXY1.x*(1 - dist) + PointXY2.x*dist;
@ -577,11 +577,11 @@ RfPointXYZ ApproachPoint3d(RfPointXYZ PointXYZ1, RfPointXYZ PointXYZ2, float Dis
float dist;
RfPointXYZ LengthXYZ;
LengthXYZ.x = fabs(PointXYZ1.x - PointXYZ2.x);
LengthXYZ.y = fabs(PointXYZ1.y - PointXYZ2.y);
LengthXYZ.z = fabs(PointXYZ1.z - PointXYZ2.z);
LengthXYZ.x = (float)fabs(PointXYZ1.x - PointXYZ2.x);
LengthXYZ.y = (float)fabs(PointXYZ1.y - PointXYZ2.y);
LengthXYZ.z = (float)fabs(PointXYZ1.z - PointXYZ2.z);
dist = sqrt(sqr(LengthXYZ.x) + sqr(LengthXYZ.y) + sqr(LengthXYZ.z));
dist = (float)sqrt(sqr(LengthXYZ.x) + sqr(LengthXYZ.y) + sqr(LengthXYZ.z));
dist = Distans / dist;
PointXYZ2.x = PointXYZ1.x*(1 - dist) + PointXYZ2.x*dist;
PointXYZ2.y = PointXYZ1.y*(1 - dist) + PointXYZ2.y*dist;
@ -596,11 +596,11 @@ RfPointXYZ setDistancePoint3d(RfPointXYZ PointXYZ1, RfPointXYZ PointXYZ2, float
float dist;
RfPointXYZ LengthXYZ;
LengthXYZ.x = fabs(PointXYZ1.x - PointXYZ2.x);
LengthXYZ.y = fabs(PointXYZ1.y - PointXYZ2.y);
LengthXYZ.z = fabs(PointXYZ1.z - PointXYZ2.z);
LengthXYZ.x = (float)fabs(PointXYZ1.x - PointXYZ2.x);
LengthXYZ.y = (float)fabs(PointXYZ1.y - PointXYZ2.y);
LengthXYZ.z = (float)fabs(PointXYZ1.z - PointXYZ2.z);
dist = sqrt(sqr(LengthXYZ.x) + sqr(LengthXYZ.y) + sqr(LengthXYZ.z));
dist = (float)sqrt(sqr(LengthXYZ.x) + sqr(LengthXYZ.y) + sqr(LengthXYZ.z));
dist = 1 - Distans / dist;
PointXYZ2.x = PointXYZ1.x*(1 - dist) + PointXYZ2.x*dist;
PointXYZ2.y = PointXYZ1.y*(1 - dist) + PointXYZ2.y*dist;