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); }
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); }
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)) ); }
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가 초기화 됨. }
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); }
public SSector(SCircle Super_, Single LeftTheta_, Single RightTheta_) : base(Super_) { LeftTheta = LeftTheta_; RightTheta = RightTheta_; }
public void Set(SCircle Obj_) { base.Set(Obj_); Radius = Obj_.Radius; }
public SCircle(SCircle Obj_) : base(Obj_) { Radius = Obj_.Radius; }