using System;
namespace Science.Physics.GeneralPhysics
{
///
/// Position
///
public class Position : Vector
{
private void SetDim()
{
this.DimensionMass = 1;
this.DimensionLength = 0;
this.DimensionTime = 0;
}
public Position()
{
SetDim();
}
public Position(Vector.FunctionOfTime func)
: base(func)
{
SetDim();
}
private Velocity velo;
private int component;
public Position(Time tInitial, Position xInitial,
Velocity v, Time tFinal)
{
SetDim();
velo = v;
Calculus.Function del2
= new Calculus.Function(Func2);
component = 0;
this.X = xInitial.X + Calculus.Integration1D(del2, tInitial.s, tFinal.s);
component = 1;
this.Y = xInitial.Y + Calculus.Integration1D(del2, tInitial.s, tFinal.s);
component = 2;
this.Z = xInitial.Z + Calculus.Integration1D(del2, tInitial.s, tFinal.s);
}
private double Func2(double t)
{
Time time = new Time();
time.s = t;
velo.Set(time);
if(component==0) return velo.X;
else if(component==1) return velo.Y;
else return velo.Z;
}
public double m
{
get{return this.Norm;}
}
public override string ToString()
{
return base.ToString() + "(m)";
}
}
}