示例#1
0
        public double DistanceTo(VectorPM vec)
        {
            double dx = vec.XAxis - this.XAxis;
            double dy = vec.YAxis - this.YAxis;

            return(Math.Sqrt(dx * dx + dy * dy));
        }
示例#2
0
        public VectorPM Subcract(VectorPM v2)
        {
            VectorPM vector = new VectorPM();

            vector.XAxis -= v2.XAxis;
            vector.YAxis -= v2.YAxis;
            return(vector);
        }
示例#3
0
        public VectorPM Add(VectorPM v2)
        {
            VectorPM vector = new VectorPM();

            vector.XAxis += v2.XAxis;
            vector.YAxis += v2.YAxis;
            return(vector);
        }
示例#4
0
        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));
        }
示例#5
0
        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);
        }
示例#6
0
        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);
        }
示例#7
0
        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);
            }
        }
示例#8
0
 public double AngleTo(VectorPM vec)
 {
     return(Math.Atan2(vec.YAxis - this.YAxis, vec.XAxis - this.XAxis));
 }
示例#9
0
 public void SubtractFrom(VectorPM v2)
 {
     this.XAxis -= v2.XAxis;
     this.YAxis -= v2.YAxis;
 }
示例#10
0
 public void AddTo(VectorPM v2)
 {
     this.XAxis += v2.XAxis;
     this.YAxis += v2.YAxis;
 }
示例#11
0
 public void InheritVector(VectorPM vec)
 {
     this.XAxis = vec.XAxis;
     this.YAxis = vec.YAxis;
 }