소개글
<두 사각형의 겹치는 면적을 계산하는 프로그램을 작성>1. 사각형의 위치 크기 면적을 출력
2. 두 사각형의 겹치는 영역으로 구성되는 사각형의 위치 크기 면적을 출력한다.
(class 정의를 이용하여 사용자가 두사각형의 위치 면적을 입력할 것)
목차
1. 문제 인식2. 문제 접근 방법 및 분석
3. 소스코드 및 주석
4. 결과화면
5. 느낀점
본문내용
{cout<<"사각형이 겹치지 않습니다"<<endl; //x좌표에선 겹쳤으나 y좌표에선 겹치지 않았으므로
//두사각형은 겹치지 않았다
exit(1); //종료
}
recwidth=(r.getxlow()+r.getwidth()-g.getxlow()); //겹쳤을경우 겹친 x좌표
recheight=(r.getylow()+r.getheight()-g.getylow()); //겹쳤을경우 겹친 y좌표
area=recwidth*recheight; //겹친 사각형 총 넓이
cout<<"겹치는 사각형의 시작 위치는 : "<<g.getxlow()<<" . "<<g.getylow()<<endl;
cout<<"겹치는 사각형의 넓이는 : "<<area<<endl;
exit(1); //종료
}
if(r.getxlow()+r.getwidth()>g.getxlow()+g.getwidth())
//사각형 r의 x좌표와 너비가 사각형 g의 x좌표와 너비보다 크다면
//사각형 r이 g보다 오른쪽에 있음
{
max=r.getxlow()+r.getwidth(); //x좌표중 큰것은 r의 x좌표와 r의 너비의 합
min=g.getxlow(); //x좌표중 작은값은 g의 x좌표
minus=max-min; //최대에서 최소를 뺀값
truth=r.getwidth()+g.getwidth(); //실제 r과 g의 너비를 더한값
if(truth>minus) //truth 값이 최대에서 최소를 뺀값보다 크다면 어딘가 겹쳤기에
//큰것임을 증명
{
max=r.getylow()+r.getheight(); //이번엔 같은방식으로 y값 비교
min=g.getylow();
minus=max-min;
truth=r.getheight()+g.getheight();
if(truth>minus) //y좌표에서도 겹쳤을경우
{
cout<<"사각형이 겹칩니다"<<endl; //겹쳤음 확인 출력
}
}
else// x좌표는 겹쳤으나 y좌표는 겹치지 않아 겹쳐진 사각형이 없음
{
cout<<"사각형이 겹치지 않습니다"<<endl;
exit(1); //종료
}
recwidth=(g.getxlow()+g.getwidth()-r.getxlow()); //겹친 사각형 너비
recheight=(g.getylow()+g.getheight()-r.getylow()); //겹친 사각형 높이
area=recwidth*recheight; //겹친 사각형 너비와 높이의 곱
cout<<"겹치는 사각형의 시작 위치는 : "<<r.getxlow()<<" . "<<r.getylow()<<endl;
cout<<"겹치는 사각형의 넓이는 : "<<area<<endl;
exit(1); //종료
}
if(r.getxlow()+r.getwidth()==g.getxlow()+g.getwidth()) //두사각형의 x좌표가 같다면
{
max=r.getylow()+r.getheight(); //x좌표는 같기에 y좌표 겹침만 확인하면됨
min=g.getylow();
minus=max-min;
truth=r.getheight()+g.getheight();
if(truth>minus) //y좌표에서도 겹쳤을경우
{
cout<<"사각형이 겹칩니다"<<endl; //겹쳤음 확인 출력
}
else
{
cout<<"사각형이 겹치지 않습니다"<<endl;
exit(1);
}
참고 자료
없음이 자료와 함께 구매한 자료
- 사각형 11페이지
- [실습7] Stack 7페이지
- [실습7-1] Post fix 13페이지
- [실습8-1] 선형 디큐 5페이지
- [실습9] 원형 디큐 7페이지