Beispiel #1
0
        public static bool CALCULATE_JIBUN_OUTLINE_POINTS(APM_BASE110 BAY, APM_BASE120 plate, List <APM_BASE125> items)
        {
            System.Drawing.Point Min = new System.Drawing.Point(0, 0);
            System.Drawing.Point Max = new System.Drawing.Point(0, 0);

            if (items.Count == 0)
            {
                return(false);
            }

            for (int i = 0; i < items.Count; i++)
            {
                APM_BASE125 item = items[i];

                if (i == 0)
                {
                    Min = new System.Drawing.Point(item.PLATE_ST_X, item.PLATE_ST_Y);
                    Max = new System.Drawing.Point(item.PLATE_ST_X, item.PLATE_ST_Y);
                }
                else
                {
                    Min = new System.Drawing.Point(
                        Math.Min(Min.X, item.PLATE_ST_X)
                        , Math.Min(Min.Y, item.PLATE_ST_Y)
                        );

                    Max = new System.Drawing.Point(
                        Math.Max(Max.X, item.PLATE_ST_X)
                        , Math.Max(Max.Y, item.PLATE_ST_Y)
                        );
                }
            }

            List <System.Drawing.Point> ptf = new List <System.Drawing.Point>();

            int scale = 100; // Scale

            // 시작 위치 및 스케일 적용
            plate.MinPoint = new System.Drawing.Point(
                (Min.X + BAY.OffsetX) * scale
                , (-Min.Y - BAY.OffsetY) * scale
                );

            plate.MaxPoint = new System.Drawing.Point(
                (Max.X + BAY.OffsetX) * scale
                , (-Max.Y - BAY.OffsetY) * scale
                );

            return(true);
        }
        public static List <System.Drawing.Point> BAY_OUTLINE_POINTS(APM_BASE110 BAY, List <APM_BASE115> items)
        {
            List <System.Drawing.Point> pt = new List <System.Drawing.Point>();

            for (int i = 0; i < items.Count; i++)
            {
                APM_BASE115 item = items[i];

                pt.Add(new System.Drawing.Point(item.ST_X, item.ST_Y));
            }

            List <System.Drawing.Point> ptf = new List <System.Drawing.Point>();

            int scale = 100; // Scale

            int minX = 100000;
            int maxY = 0;

            for (int i = 0; i < pt.Count; i++)
            {
                // 시작 위치 및 스케일 적용
                int x = (pt[i].X + BAY.OffsetX) * scale;
                int y = (-pt[i].Y - BAY.OffsetY) * scale;

                if (i == 0)
                {
                    minX = x;
                    maxY = y;
                }
                else
                {
                    minX = Math.Min(minX, x);
                    maxY = Math.Max(maxY, y);
                }

                ptf.Add(new System.Drawing.Point(x, y));
            }

            BAY.MinPoint = new System.Drawing.Point(minX, maxY);

            return(ptf);
        }