'A parameterized point on the Line.
Parameters
parameter : str, optional
The name of the parameter which will be used for the parametric
point. The default value is \'t\'. When this parameter is 0, the
first point used to define the line will be returned, and when
it is 1 the second point will be returned.
Returns
point : Point
Raises
ValueError
When ``parameter`` already appears in the Line\'s definition.
See Also
sympy.geometry.point.Point
Examples
>>> from sympy import Point, Line
>>> p1, p2 = Point(1, 0), Point(5, 3)
>>> l1 = Line(p1, p2)
>>> l1.arbitrary_point()
Point2D(4*t + 1, 3*t)
>>> from sympy import Point3D, Line3D
>>> p1, p2 = Point3D(1, 0, 0), Point3D(5, 3, 1)
>>> l1 = Line3D(p1, p2)
>>> l1.arbitrary_point()
Point3D(4*t + 1, 3*t, t)'

def arbitrary_point(self, parameter='t'):

    t = _symbol(parameter)
    if (t.name in (f.name for f in self.free_symbols)):
        raise ValueError(('Symbol    %s    already    appears    in    object    and    cannot    be    used    as    a    parameter.' % t.name))
    return (self.p1 + ((self.p2 - self.p1) * t))
