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)?