Пример #1
0
        public static bool IsOverlappedPointCircle(SPoint Point_, SCircle Circle_)
        {
            if ((Point_.X - Circle_.X) * (Point_.X - Circle_.X) + (Point_.Y - Circle_.Y) * (Point_.Y - Circle_.Y) <= Circle_.Radius * Circle_.Radius)
            {
                return(true);
            }

            return(false);
        }
Пример #2
0
        public static bool IsOverlappedCircleCircle(SCircle Circle0_, SCircle Circle1_)
        {
            if ((Circle0_.X - Circle1_.X) * (Circle0_.X - Circle1_.X) + (Circle0_.Y - Circle1_.Y) * (Circle0_.Y - Circle1_.Y) <=
                (Circle0_.Radius + Circle1_.Radius) * (Circle0_.Radius + Circle1_.Radius))
            {
                return(true);
            }

            return(false);
        }
Пример #3
0
 public static bool IsOverlappedCirclePointRect(SCircle Circle_, SPointRect PointRect_)
 {
     return(
         IsOverlappedPointPointRect(Circle_, new SPointRect(new SPoint(PointRect_.TopRight.X, PointRect_.TopRight.Y + Circle_.Radius), new SPoint(PointRect_.TopLeft.X, PointRect_.TopLeft.Y + Circle_.Radius), new SPoint(PointRect_.BottomLeft.X, PointRect_.BottomLeft.Y - Circle_.Radius), new SPoint(PointRect_.BottomRight.X, PointRect_.BottomRight.Y - Circle_.Radius))) ||
         IsOverlappedPointPointRect(Circle_, new SPointRect(new SPoint(PointRect_.TopRight.X + Circle_.Radius, PointRect_.TopRight.Y), new SPoint(PointRect_.TopLeft.X - Circle_.Radius, PointRect_.TopLeft.Y), new SPoint(PointRect_.BottomLeft.X - Circle_.Radius, PointRect_.BottomLeft.Y), new SPoint(PointRect_.BottomRight.X + Circle_.Radius, PointRect_.BottomRight.Y))) ||
         IsOverlappedPointCircle(Circle_, new SCircle(PointRect_.TopRight, Circle_.Radius)) ||
         IsOverlappedPointCircle(Circle_, new SCircle(PointRect_.TopLeft, Circle_.Radius)) ||
         IsOverlappedPointCircle(Circle_, new SCircle(PointRect_.BottomLeft, Circle_.Radius)) ||
         IsOverlappedPointCircle(Circle_, new SCircle(PointRect_.BottomRight, Circle_.Radius))
         );
 }
Пример #4
0
    public static void Main()
    {
        CCircle cc1;                    // 객체 아님. 참조 변수
        CCircle cc2 = new CCircle();    // 객체 생성, 모든 멤버가 0으로 초기화
        SCircle sc1;                    // 객체 생성.
        SCircle sc2 = new SCircle();

        int n1 = cc1.center.x;          // error. x가 메모리에 없음.
        int n2 = cc2.center.x;          // ok. 0
        int n3 = sc1.center.x;          // error. x가 초기화 안됨.
        int n4 = sc2.center.x;          // ok. x가 초기화 됨.
    }
Пример #5
0
        public static bool IsOverlappedCircleRect(SCircle Circle_, SRect Rect_)
        {
            if (
                // 세로로 긴 직사각형에 포함
                IsOverlappedPointRect(Circle_, new SRect(Rect_.Left, Rect_.Right, Rect_.Bottom - Circle_.Radius, Rect_.Top + Circle_.Radius)) ||
                // 가로로 긴 직사각형에 포함
                IsOverlappedPointRect(Circle_, new SRect(Rect_.Left - Circle_.Radius, Rect_.Right + Circle_.Radius, Rect_.Bottom, Rect_.Top)) ||
                // 네 모서리 1/4 원에 포함
                IsOverlappedPointCircle(new SPoint(Rect_.Left, Rect_.Bottom), Circle_) ||
                IsOverlappedPointCircle(new SPoint(Rect_.Right, Rect_.Bottom), Circle_) ||
                IsOverlappedPointCircle(new SPoint(Rect_.Left, Rect_.Top), Circle_) ||
                IsOverlappedPointCircle(new SPoint(Rect_.Right, Rect_.Top), Circle_)
                )
            {
                return(true);
            }

            return(false);
        }
Пример #6
0
 public SSector(SCircle Super_, Single LeftTheta_, Single RightTheta_) : base(Super_)
 {
     LeftTheta  = LeftTheta_;
     RightTheta = RightTheta_;
 }
Пример #7
0
 public void Set(SCircle Obj_)
 {
     base.Set(Obj_);
     Radius = Obj_.Radius;
 }
Пример #8
0
 public SCircle(SCircle Obj_) : base(Obj_)
 {
     Radius = Obj_.Radius;
 }