#include <iostream>
using namespace std;
double Ax, Ay, Bx, By, Cx, Cy;
double MidSideAx, MidSideAy, MidSideCx, MidSideCy;
double SlopeAB, SlopeBC, CircumCenterX, CircumCenterY;
double GetCircumCenterXY() {
MidSideAx = ((Bx + Cx)/2.0);
MidSideAy = ((By + Cy)/2.0);
MidSideCx = ((Bx + Ax)/2.0);
MidSideCy = ((By + Ay)/2.0);
//Inverted Slopes of two Perpendicular lines of the Triangle
SlopeAB =-((Bx - Ax)/(By - Ay));
SlopeBC =-((Cx - Bx)/(Cy - Ay));
CircumCenterX = ((SlopeBC * MidSideAx) + MidSideAy - (SlopeAB * MidSideCx) + MidSideCy) / (SlopeBC - SlopeAB);
CircumCenterY = SlopeAB * (CircumCenterX - MidSideCx) + MidSideCy;
return (((SlopeBC * MidSideAx) + MidSideAy) - ((SlopeAB * MidSideCx) + MidSideCy)) / (SlopeBC - SlopeAB);
}
//These integers are inputted by the User earlier in the code via cin
int main() {
cout<<"Ax, Ay = "; cin>>Ax>>Ay;
cout<<"Bx, By = "; cin>>Bx>>By;
cout<<"Cx, Cy = "; cin>>Cx>>Cy;
GetCircumCenterXY();
cout<<"CircumCenterX, Y = "<<CircumCenterX<<" "<<CircumCenterY<<endl;
return 0;
}
입력할 때는 분모가 0이 되지 않게 주의해야 합니다.
'c·c++ > c++ 프로그래밍' 카테고리의 다른 글
동적할당을 이용한 무한자리수 덧셈 (0) | 2012.09.14 |
---|---|
단어 갯수세기 (0) | 2012.08.31 |
getline (0) | 2012.08.16 |
숫자열에서 한숫자씩 입력받기 (0) | 2012.07.08 |
패스워드 파일을 읽고 처리하는 간단한 예제 (0) | 2012.05.29 |