Show / Hide Table of Contents

    Class Point2D

    The Point2D class can represent a position in 2D space, or a vector in 2D space. Some operations assume that the interpretation is a vector.

    Inheritance
    System.Object
    Point2D
    Inherited Members
    System.Object.Equals(System.Object, System.Object)
    System.Object.GetType()
    System.Object.MemberwiseClone()
    System.Object.ReferenceEquals(System.Object, System.Object)
    Namespace: DesignData.SDS2.Primitives
    Assembly: DesignData.SDS2.Primitives.dll
    Syntax
    public sealed class Point2D
    Remarks

    Note that intermediate arithmetic is done in floating point, and thus some operations may have intermediate results that overflow, underflow or experience cancellation error, like all floating-point arithmetic.

    Constructors

    Point2D()

    Instantiates a point with X and Y set to zero

    Declaration
    public Point2D()

    Point2D(Point2D)

    Instantiates a point equal to the given point

    Declaration
    public Point2D(Point2D pt)
    Parameters
    Type Name Description
    Point2D pt

    The point whose value to copy

    Point2D(Vector2D)

    Instantiates a point with the X and Y values of the given vector

    Declaration
    public Point2D(Vector2D vector)
    Parameters
    Type Name Description
    Vector2D vector

    The point whose value to copy

    Point2D(Double, Double)

    Instantiates a point with the given X and Y values

    Declaration
    public Point2D(double x, double y)
    Parameters
    Type Name Description
    System.Double x

    The X value for the new point

    System.Double y

    The Y value for the new point

    Properties

    X

    The X-coordinate of the point

    Declaration
    public double X { get; }
    Property Value
    Type Description
    System.Double

    Y

    The Y-coordinate of the point

    Declaration
    public double Y { get; }
    Property Value
    Type Description
    System.Double

    Methods

    BinEquals(Point2D, Double)

    Returns true if this point and the given point fall within the same "bin". A "bin" is a square region of space approximately binSize on a side.

    Declaration
    public bool BinEquals(Point2D other, double binSize)
    Parameters
    Type Name Description
    Point2D other

    The other point

    System.Double binSize

    The size of a bin.

    Returns
    Type Description
    System.Boolean
    Remarks

    Unlike EpsilonEquals, BinEquals maintains the transitive rule of equality, but some points which are arbitrarily close together in distance are unequal according got EpsilonEquals, because they fall into different bins.

    EpsilonEquals(Point2D, Double)

    Returns true if the squared distance between this point and the given point is less than distance_squared.

    Declaration
    public bool EpsilonEquals(Point2D other, double distanceSquared)
    Parameters
    Type Name Description
    Point2D other

    The other point

    System.Double distanceSquared

    The square of the smallest distance value that should be considered different

    Returns
    Type Description
    System.Boolean
    Remarks

    Note that EpsilonEquals can violate the transitivity rule of equality comparison, because there are many groups of points (p, q, r) where p.EpsilonEquals(q) and p.EpsilonEquals(r) but not q.EpsilonEquals(r).

    Equals(Object)

    Checks if each element of the points are equal using Double.Equals on each component. Note that this is an "exact" comparison method, and only appropriate in special circumstances.

    Declaration
    public override bool Equals(object obj)
    Parameters
    Type Name Description
    System.Object obj

    The point to compare to

    Returns
    Type Description
    System.Boolean
    Overrides
    System.Object.Equals(System.Object)

    Finalize()

    Declaration
    protected void Finalize()

    GetHashCode()

    Returns the hash code for this instance. True for instances which are Equals(), otherwise False with high probability. Specific hash values are implementation-dependent.

    Declaration
    public override int GetHashCode()
    Returns
    Type Description
    System.Int32
    Overrides
    System.Object.GetHashCode()

    Interpolate(Point2D, Double)

    Performs linear interpolation between this point and the other

    Declaration
    public Point2D Interpolate(Point2D other, double t)
    Parameters
    Type Name Description
    Point2D other

    The other point

    System.Double t

    Controls the mixing between the two points. This function is defined for all values of t, though strictly speaking only values in the interval [0,1] are interpolations, and other values are extrapolations.

    Returns
    Type Description
    Point2D
    Remarks

    This is equal to this + (other - this) * t.

    Note that due to floating point arithmetic, p.project(q, 1.0) may not be exactly equal to q.

    ToString()

    Formats the point into a string. Note that because the values are rounded for display, parsing them to retrieve the X and Y values will not necessarily yield the same point.

    Declaration
    public override string ToString()
    Returns
    Type Description
    System.String
    Overrides
    System.Object.ToString()

    Operators

    Equality(Point2D, Point2D)

    Checks if each element of the points are equal using == on each component. Note that this is an "exact" comparison method, and only appropriate in special circumstances.

    Declaration
    public static bool operator ==(Point2D p, Point2D q)
    Parameters
    Type Name Description
    Point2D p

    The point to compare

    Point2D q

    The point to compare to

    Returns
    Type Description
    System.Boolean

    Inequality(Point2D, Point2D)

    Checks if any element of the points are unequal using != on each component. Note that this is an "exact" comparison method, and only appropriate in special circumstances.

    Declaration
    public static bool operator !=(Point2D p, Point2D q)
    Parameters
    Type Name Description
    Point2D p

    The point to compare

    Point2D q

    The point to compare to

    Returns
    Type Description
    System.Boolean

    Subtraction(Point2D, Point2D)

    Return a vector which is the difference of the two given points

    Declaration
    public static Vector2D operator -(Point2D arg0, Point2D arg1)
    Parameters
    Type Name Description
    Point2D arg0
    Point2D arg1
    Returns
    Type Description
    Vector2D
    Back to top