Search Results for

    Show / Hide Table of Contents

    Class HilbertCode

    Encodes points as the index along finite planar Hilbert curves.

    The planar Hilbert Curve is a continuous space-filling curve. In the limit the Hilbert curve has infinitely many vertices and fills the space of the unit square. A sequence of finite approximations to the infinite Hilbert curve is defined by the level number. The finite Hilbert curve at level n Hₙ contains 2ⁿ⁺¹ points. Each finite Hilbert curve defines an ordering of the points in the 2-dimensional range square containing the curve. Curves fills the range square of side 2ˡᵉᵛᵉˡ. Curve points have ordinates in the range [0, 2ˡᵉᵛᵉˡ - 1]. The index of a point along a Hilbert curve is called the Hilbert code. The code for a given point is specific to the level chosen.

    This implementation represents codes using 32-bit integers. This allows levels 0 to 16 to be handled. The class supports encoding points in the range of a given level curve and decoding the point for a given code value.

    The Hilbert order has the property that it tends to preserve locality. This means that codes which are near in value will have spatially proximate points. The converse is not always true - the delta between codes for nearby points is not always small. But the average delta is small enough that the Hilbert order is an effective way of linearizing space to support range queries.

    Inheritance
    object
    HilbertCode
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: NetTopologySuite.Shape.Fractal
    Assembly: NetTopologySuite.dll
    Syntax
    public static class HilbertCode

    Fields

    | Edit this page View Source

    MaxLevel

    The maximum curve level that can be represented.

    Declaration
    public static readonly int MaxLevel
    Field Value
    Type Description
    int

    Methods

    | Edit this page View Source

    Decode(int, int)

    Computes the point on a Hilbert curve of given level for a given code index. The point ordinates will lie in the range [0, 2ˡᵉᵛᵉˡ - 1].

    Declaration
    public static Coordinate Decode(int level, int index)
    Parameters
    Type Name Description
    int level

    The Hilbert curve level.

    int index

    The index of the point on the curve.

    Returns
    Type Description
    Coordinate

    The point on the Hilbert curve.

    | Edit this page View Source

    Encode(int, int, int)

    Encodes a point (x,y) in the range of the the Hilbert curve at a given level as the index of the point along the curve. The index will lie in the range [0, 2ˡᵉᵛᵉˡ⁺¹].

    Declaration
    public static int Encode(int level, int x, int y)
    Parameters
    Type Name Description
    int level

    The level of the Hilbert curve.

    int x

    The x ordinate of the point.

    int y

    The y ordinate of the point.

    Returns
    Type Description
    int

    The index of the point along the Hilbert curve.

    | Edit this page View Source

    Level(int)

    The level of the finite Hilbert curve which contains at least the given number of points.

    Declaration
    public static int Level(int numPoints)
    Parameters
    Type Name Description
    int numPoints

    The number of points required.

    Returns
    Type Description
    int

    The level of the curve.

    | Edit this page View Source

    MaxOrdinate(int)

    The maximum ordinate value for points in the curve for the given level. The maximum ordinate is 2ˡᵉᵛᵉˡ - 1.

    Declaration
    public static int MaxOrdinate(int level)
    Parameters
    Type Name Description
    int level

    The level of the curve.

    Returns
    Type Description
    int

    The maximum ordinate value.

    | Edit this page View Source

    Size(int)

    The number of points in the curve for the given level. The number of points is 2²ˡᵉᵛᵉˡ.

    Declaration
    public static int Size(int level)
    Parameters
    Type Name Description
    int level

    The level of the curve

    Returns
    Type Description
    int

    The number of points.

    See Also

    HilbertCurveBuilder
    MortonCode
    • Edit this page
    • View Source
    In this article
    Back to top Generated by DocFX