public double DistanceTo(VectorPM vec) { double dx = vec.XAxis - this.XAxis; double dy = vec.YAxis - this.YAxis; return(Math.Sqrt(dx * dx + dy * dy)); }
public VectorPM Subcract(VectorPM v2) { VectorPM vector = new VectorPM(); vector.XAxis -= v2.XAxis; vector.YAxis -= v2.YAxis; return(vector); }
public VectorPM Add(VectorPM v2) { VectorPM vector = new VectorPM(); vector.XAxis += v2.XAxis; vector.YAxis += v2.YAxis; return(vector); }
public void GravitateTo(VectorPM vec) { //VectorPM grav = new VectorPM(); double dis = this.DistanceTo(vec); //grav.SetLength(vec.Mass / (dis * dis)); //grav.SetAngle(this.AngleTo(vec)); this.Acceleration(this.AngleTo(vec), vec.Mass / (dis * dis)); }
public VectorPM Divide(double val) { VectorPM vector = new VectorPM(); double X = this.XAxis / val; double Y = this.YAxis / val; vector.XAxis = X; vector.YAxis = Y; return(vector); }
public VectorPM Multiply(double val) { VectorPM vector = new VectorPM(); double X = this.XAxis * val; double Y = this.YAxis * val; vector.XAxis = X; vector.YAxis = Y; return(vector); }
public bool speedcap(VectorPM vec) { //take the hypotonose of both velocity and current axis's and compares them if they are to far apart then they will return false //as an idea of a speed cap double hypotonusOfV = Math.Sqrt(vec.VelocityX * vec.VelocityX + vec.VelocityY * vec.VelocityY); double hypotonusOfA = Math.Sqrt(vec.XAxis * vec.XAxis + vec.YAxis * vec.YAxis); double percent = hypotonusOfV / hypotonusOfA; if (percent > .01) { return(false); } else { return(true); } }
public double AngleTo(VectorPM vec) { return(Math.Atan2(vec.YAxis - this.YAxis, vec.XAxis - this.XAxis)); }
public void SubtractFrom(VectorPM v2) { this.XAxis -= v2.XAxis; this.YAxis -= v2.YAxis; }
public void AddTo(VectorPM v2) { this.XAxis += v2.XAxis; this.YAxis += v2.YAxis; }
public void InheritVector(VectorPM vec) { this.XAxis = vec.XAxis; this.YAxis = vec.YAxis; }