for i get the point on a 3D line, i use these function:
Code:
Position3D GetLinePosition(Position3D Origin, Position3D Destiny, double ActualPosition, Coordenates WhatCoordenate = Z){
// Getting the AB vector(B-A or Destiny-Origin):
Position3D AB;
AB.X = Destiny.X - Origin.X;
AB.Y = Destiny.Y - Origin.Y;
AB.Z = Destiny.Z - Origin.Z;
Position3D NewPosition;
double T;
// depending on player movement(for get 1 coordenate and the T), we get the point coordenate:
if ((WhatCoordenate == X))
{
// X = Ax + T
// T = Ax-X
T = Origin.X - ActualPosition;
NewPosition.X = ActualPosition;
NewPosition.Y = Origin.Y + AB.Y * T;
NewPosition.Z = Origin.Z + AB.Z * T;
}
else if ((WhatCoordenate == Y))
{
// Y = Ay + T
// T = Ay-Y
T = Origin.Y - ActualPosition;
NewPosition.Y = ActualPosition;
NewPosition.X = Origin.X + AB.X * T;
NewPosition.Z = Origin.Z + AB.Z * T;
}
else if ((WhatCoordenate == Z))
{
// Z = Az + T
// T = Az-Z
T = Origin.Z - ActualPosition;
NewPosition.Z = ActualPosition;
NewPosition.X = Origin.X + AB.X * T;
NewPosition.Y = Origin.Y + AB.Y * T;
}
GetLinePosition = NewPosition;
}
is these function correct for i get a point from 1 3D line using\knowing Z(for example)?