⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dxfrectangle.cs

📁 导出dxf的原码类库,根据国外一个反编译的
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Drawing;

namespace DXFFile
{
    public class DXFRectangle : DXFFigure
    {
        // Methods
        public DXFRectangle()
        {
        }

        public DXFRectangle(DXFData aData)
            : base(aData)
        {
        }

        public override void ExportAsDXF(DXFExport ADXFExport)
        {
            ADXFExport.BeginPoly(base.data, 4);
            ADXFExport.AddVertex(base.data.point);
            ADXFExport.AddVertex(new DXFPoint(base.data.point1.X, base.data.point.Y, 0f));
            ADXFExport.AddVertex(base.data.point1);
            ADXFExport.AddVertex(new DXFPoint(base.data.point.X, base.data.point1.Y, 0f));
            ADXFExport.AddVertex(base.data.point);
        }

        public override bool IntersecRect(Rect aRect)
        {
            Rect rect = new Rect();
            rect.X1 = (int)Math.Round((double)base.data.point.X);
            rect.Y1 = (int)Math.Round((double)base.data.point.Y);
            rect.X2 = (int)Math.Round((double)base.data.point1.X);
            rect.Y2 = (int)Math.Round((double)base.data.point1.Y);
            if (rect.X2 < rect.X1)
            {
                int num = rect.X2;
                rect.X2 = rect.X1;
                rect.X1 = num;
            }
            if (rect.Y2 < rect.Y1)
            {
                int num2 = rect.Y2;
                rect.Y2 = rect.Y1;
                rect.Y1 = num2;
            }
            Rectangle rectangle = new Rectangle(0, 0, 0, 0);
            rectangle = Rectangle.Intersect(new Rectangle(aRect.X1, aRect.Y1, aRect.X2, aRect.Y2), new Rectangle(rect.X1, rect.Y1, rect.X2, rect.Y2));
            if (((rectangle.X <= 0) && (rectangle.Y <= 0)) && ((rectangle.Width <= 0) && (rectangle.Height <= 0)))
            {
                return false;
            }
            return true;
        }

        public override void ParseToLines(ArrayList NewElemes)
        {
            DXFLine line = new DXFLine();
            line.StartPoint.X = base.data.point1.X;
            line.StartPoint.Y = base.data.point.Y;
            line.EndPoint.X = base.data.point.X;
            line.EndPoint.Y = base.data.point.Y;
            NewElemes.Add(line.Clone());
            line.StartPoint.X = base.data.point.X;
            line.StartPoint.Y = base.data.point.Y;
            line.EndPoint.X = base.data.point.X;
            line.EndPoint.Y = base.data.point1.Y;
            NewElemes.Add(line.Clone());
            line.StartPoint.X = base.data.point.X;
            line.StartPoint.Y = base.data.point1.Y;
            line.EndPoint.X = base.data.point1.X;
            line.EndPoint.Y = base.data.point1.Y;
            NewElemes.Add(line.Clone());
            line.StartPoint.X = base.data.point1.X;
            line.StartPoint.Y = base.data.point1.Y;
            line.EndPoint.X = base.data.point1.X;
            line.EndPoint.Y = base.data.point.Y;
            NewElemes.Add(line.Clone());
        }

        // Properties
        public DXFPoint LeftTop
        {
            get
            {
                return new DXFPoint(base.data.point1.X, base.data.point.Y, 0f);
            }
            set
            {
                base.data.point1.X = value.X;
                base.data.point.Y = value.Y;
            }
        }

        public DXFPoint RightBottom
        {
            get
            {
                return new DXFPoint(base.data.point.X, base.data.point1.Y, 0f);
            }
            set
            {
                base.data.point.X = value.X;
                base.data.point1.Y = value.Y;
            }
        }


    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -