矩形类,用来表示坐标值为双精度的矩形对象,即其左边界坐标值、下边界坐标值、右边界坐标值、上边界坐标值均为双精度类型,其中左边界坐标值小于等于右边界坐标值, 下边界坐标值小于等于上边界坐标值。

命名空间:  SuperMap.Data
程序集:  SuperMap.Data (in SuperMap.Data)
版本: dll

语法

C#
public struct Rectangle2D

备注

该类的对象通常用于确定范围,可用来表示几何对象的最小外接矩形、地图窗口的可视范围,数据集的范围等,另外在进行矩形选择,矩形查询等时也会用到此类的对象。

最通常的构造矩形对象的方法为用指定的左边界坐标值、下边界坐标值、右边界坐标值、上边界坐标值来构造;使用默认构造函数构造矩形对象为一个空对象,即左边界坐标值、下边界坐标值、右边界坐标值和上边界坐标值均为 Double 数据类型的最小值,另外还可以通过给定左下角点和右上角点的方式,以及给定左下角点和矩形宽度和高度的方式来构造新的矩形对象。

该类提供了与矩形对象相关的关系的判断,以及获得矩形对象之间的交集和并集的方法。

使用该类提供的方法,您还可以对矩形对象进行缩放和平移,以及对已有矩形对象的边界坐标值采用某种取整方法来获得边界坐标值为整数的新的矩形对象。

示例

以下代码示范对一个矩形几何对象的一些操作。

CopyC#
public void Rectangle2DSample()
{
    // 构造矩形对象
    Rectangle2D rectangle2D = new Rectangle2D(100, 300, 200, 400);
    Console.WriteLine(rectangle2D); // {Left=100,Bottom=300,Right=200,Top=400}

    // 构造矩形对象
    Rectangle2D rectangle2D1 = new Rectangle2D (new Point2D(100,300), 100,100);
    Console.WriteLine(rectangle2D1); // {Left=100,Bottom=300,Right=200,Top=400}

    // Inflate 操作,是长度值,不是比例数
    rectangle2D.Inflate( -30, 0.5);
    Console.WriteLine(rectangle2D); // {Left=130,Bottom=299.5,Right=170,Top=400.5}

    // Offset 操作
    rectangle2D.Offset(20.5, -51.6);
    Console.WriteLine(rectangle2D); // {Left=150.5,Bottom=247.9,Right=190.5,Top=348.9}

    // Ceiling 操作
    Rectangle2D rectangle2D2 = Rectangle2D.Ceiling(rectangle2D);
    Console.WriteLine(rectangle2D2); // {Left=151,Bottom=248,Right=191,Top=349}

    // Floor 操作
    Rectangle2D rectangle2D3 = Rectangle2D.Floor(rectangle2D);
    Console.WriteLine(rectangle2D3); // {Left=150,Bottom=247,Right=190,Top=348}

    // Round 操作
    Rectangle2D rectangle2D4 = Rectangle2D.Round(rectangle2D);
    Console.WriteLine(rectangle2D4); // {Left=150,Bottom=248,Right=190,Top=349}

    // Contains 操作
    Console.WriteLine(rectangle2D.Contains(150, 200)); // false

    // Intersect 操作
    if (rectangle2D.HasIntersection(rectangle2D1))
    {
        rectangle2D.Intersect(rectangle2D1);
    }
    Console.WriteLine(rectangle2D); // {Left=150.5,Bottom=300,Right=190.5,Top=348.9}

    // Union 操作
    rectangle2D1.Union(rectangle2D);
    Console.WriteLine(rectangle2D1); // {Left=100,Bottom=300,Right=200,Top=400}
}

版本信息

SuperMap iObjects .NET


请参见