예제 #1
0
        /// <summary>
        /// Creates and returns an real variable that represents the distance squared between <paramref name="a"/> and <paramref name="b"/>
        /// </summary>
        public static RealVariable DistanceSquared(Vector2Variable a, Vector2Variable b)
        {
            RealVariable x1MinusX2 = a.X - b.X;
            RealVariable y1MinusY2 = a.Y - b.Y;

            RealVariable result = Square(x1MinusX2) + Square(y1MinusY2);

            Constraint.GreaterThanOrEqual(result, 0.0);

            return(result);
        }
예제 #2
0
 /// <summary>
 /// Constraints <paramref name="variable"/> to be exactly <paramref name="value"/>
 /// </summary>
 public static void Equal(Vector2Variable variable, Vector2 value)
 {
     Constraint.Equal(variable.X, value.X);
     Constraint.Equal(variable.Y, value.Y);
 }
예제 #3
0
 /// <summary>
 /// Constrains that the values of <paramref name="a"/> and <paramref name="b"/> are equal.
 /// </summary>
 public static void Equal(Vector2Variable a, Vector2Variable b)
 {
     Constraint.Equal(a.X, b.X);
     Constraint.Equal(a.Y, b.Y);
 }
예제 #4
0
 /// <summary>
 /// Creates and returns an real variable that represents the difference of <paramref name="a"/> and <paramref name="b"/>
 /// </summary>
 public static Vector2Variable Subtract(Vector2Variable a, Vector2Variable b)
 {
     return(new Vector2Variable(Constraint.Subtract(a.X, b.X), Constraint.Subtract(a.Y, b.Y)));
 }
예제 #5
0
 /// <summary>
 /// Creates and returns an real variable that represents the difference of <paramref name="a"/> and <paramref name="b"/>
 /// </summary>
 public static void Difference(Vector2Variable difference, Vector2Variable a, Vector2Variable b)
 {
     Constraint.Difference(difference.X, a.X, b.X);
     Constraint.Difference(difference.Y, a.Y, b.Y);
 }
예제 #6
0
 /// <summary>
 /// Creates and returns an real variable that represents the dot product of <paramref name="a"/> and <paramref name="b"/>
 /// </summary>
 public static Vector2Variable Dot(Vector2Variable a, Vector2Variable b)
 {
     return(new Vector2Variable(Constraint.Multiply(a.Y, b.Y), Constraint.Multiply(a.Y, b.Y)));
 }
예제 #7
0
 /// <summary>
 /// Constraints <paramref name="product"/> to be the dot product of <paramref name="a"/> and <paramref name="b"/>
 /// </summary>
 public static void DotProduct(Vector2Variable product, Vector2Variable a, Vector2Variable b)
 {
     Constraint.Product(product.X, a.X, b.X);
     Constraint.Product(product.Y, a.Y, b.Y);
 }
예제 #8
0
 /// <summary>
 /// Creates and returns an real variable that represents the sum of <paramref name="a"/> and <paramref name="b"/>
 /// </summary>
 public static Vector2Variable Add(Vector2Variable a, Vector2Variable b)
 {
     return(new Vector2Variable(Constraint.Add(a.X, b.X), Constraint.Add(a.Y, b.Y)));
 }
예제 #9
0
 /// <summary>
 /// Constrains <paramref name="sum"/> to be the sum of <paramref name="a"/> and <paramref name="b"/>
 /// </summary>
 public static void Sum(Vector2Variable sum, Vector2Variable a, Vector2Variable b)
 {
     Constraint.Sum(sum.X, a.X, b.X);
     Constraint.Sum(sum.Y, a.Y, b.Y);
 }