숙제 1 (삼각형 면적)
<행렬식>
위 삼각형의 면적을 구하는 식 Signed Area(△ABC)의 값은 양수, 음수, 혹은 0이 될 수 있다.
삼각형 면적 2차원 평면에서 세개의 점 A(ax, ay), B(bx, by), C(cx, cy)로 만들어지는 삼각형 △ABC의 면적 Area(△ABC)은 다음과 같은 3X3행렬의 행렬식(determinant)을 이용하여 계산할 수 있다.
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int w[3][2]={0x00,};
int width=0x00;
//int t=0x00;
for(int i=0;i<3;i++) cin>>w[i][0]>>w[i][1];
width=(w[1][0]-w[0][0])*(w[2][1]-w[0][1]);
width-=(w[2][0]-w[0][0])*(w[1][1]-w[0][1]);
cout<<abs(width)<<' ';
if(width<0) cout<<-1;
else if(width==0) cout<<0;
else cout<<1;
cout<<endl;
return 0;
}
'코딩테스트' 카테고리의 다른 글
[C++] 소수 (0) | 2021.06.27 |
---|---|
[C++] 다각형 면적 (0) | 2021.06.27 |
[C++] 호텔 (0) | 2021.06.27 |
[C++] 수직/수평 선분의 교차 (0) | 2021.06.27 |
[C++] 사각형과 점 과의 거리 (0) | 2021.06.27 |