コード例 #1
0
        private bool isRectangleShapeInPopup()
        {
            bool bCheck = false;

            CPointUI startPointUI, endPointUI;
            double   dDistanceX, dDistanceZ;

            if (ListPointUI.Count != 4)
            {
                bCheck = false;
            }
            else
            {
                // 회전하지 않은 직사각형인지를 확인한다.
                for (int i = 0; i < 4; i++)
                {
                    if (i != 3)
                    {
                        startPointUI = ListPointUI[i];
                        endPointUI   = ListPointUI[i + 1];
                    }
                    else
                    {
                        startPointUI = ListPointUI[i];
                        endPointUI   = ListPointUI[0];
                    }

                    dDistanceX = Math.Abs(Convert.ToDouble(startPointUI.StrCoordX) - Convert.ToDouble(endPointUI.StrCoordX));
                    dDistanceZ = Math.Abs(Convert.ToDouble(startPointUI.StrCoordZ) - Convert.ToDouble(endPointUI.StrCoordZ));

                    // 회전하지 않았으면 모든 라인은 수직이거나 수평이기 때문에 한쪽의 좌표의 거리는 0이 있어야 한다.
                    if (CSmallUtil.isZeroPosition(dDistanceX) == true || CSmallUtil.isZeroPosition(dDistanceZ) == true)
                    {
                        bCheck = true;
                    }
                    else
                    {
                        bCheck = false;
                    }
                }
            }

            return(bCheck);
        }
コード例 #2
0
ファイル: Shapes.cs プロジェクト: OpenActuator/DoSA-Open_2D
        public bool isRectangle()
        {
            bool bCheck = false;

            CPoint startPoint, endPoint;
            double dDistanceX, dDistanceZ;

            if (m_listRelativePoint.Count != 4)
            {
                bCheck = false;
            }
            else
            {
                // 회전하지 않은 직사각형인지를 확인한다.
                for (int i = 0; i < 4; i++)
                {
                    if (i != 3)
                    {
                        startPoint = m_listRelativePoint[i];
                        endPoint   = m_listRelativePoint[i + 1];
                    }
                    else
                    {
                        startPoint = m_listRelativePoint[i];
                        endPoint   = m_listRelativePoint[0];
                    }

                    dDistanceX = Math.Abs(startPoint.X - endPoint.X);
                    dDistanceZ = Math.Abs(startPoint.Y - endPoint.Y);

                    // 회전하지 않았으면 모든 라인은 수직이거나 수평이기 때문에 한쪽의 좌표의 거리는 0이 있어야 한다.
                    if (CSmallUtil.isZeroPosition(dDistanceX) == true || CSmallUtil.isZeroPosition(dDistanceZ) == true)
                    {
                        bCheck = true;
                    }
                    else
                    {
                        bCheck = false;
                    }
                }
            }

            return(bCheck);
        }