Пример #1
0
 /// <summary>
 /// 他のvectorで初期化するためのコンストラクタ
 /// </summary>
 /// <param name="v"></param>
 public Vector2D(Vector2D v)
 {
     X = v.X; Y = v.Y;
 }
Пример #2
0
 /// <summary>
 /// 他のベクトルを減算する
 /// </summary>
 /// <param name="v"></param>
 public void Sub(Vector2D v)
 {
     X -= v.X;
     Y -= v.Y;
 }
Пример #3
0
 /// <summary>
 /// 外積を求める(2次元の外積の結果は定数)
 /// </summary>
 /// <param name="v"></param>
 /// <returns></returns>
 public double OuterProduct(Vector2D v)
 {
     return X * v.Y - Y * v.X;
 }
Пример #4
0
 /// <summary>
 /// 内積を求める
 /// </summary>
 /// <param name="v"></param>
 /// <returns></returns>
 public double InnerProduct(Vector2D v)
 {
     return X * v.X + Y * v.Y;
 }
Пример #5
0
 /// <summary>
 /// 近似による距離(絶対値)の算出。sqrtを使っていない分だけ速い
 /// </summary>
 /// <param name="v"></param>
 /// <returns></returns>
 public double Distance(Vector2D v)
 {
     double ax = global::System.Math.Abs(X - v.X);
     double ay = global::System.Math.Abs(Y - v.Y);
     if ( ax > ay ) {
         return ax + ay / 2;
     } else {
         return ay + ax / 2;
     }
 }
Пример #6
0
 /// <summary>
 /// 他のベクトルを加算する
 /// </summary>
 /// <param name="v"></param>
 public void Add(Vector2D v)
 {
     X += v.X;
     Y += v.Y;
 }