문제 개요
x축과 y축, 그리고 하나의 직선으로 이루어진 삼각형의 넓이를 구하는 방법을 알아보겠습니다. 먼저 직선의 방정식은 다음과 같이 주어집니다.
𝑎𝑥+𝑏𝑦+𝑐=0

위 그림처럼 직선은 x축과 만나는 점 B, y축과 만나는 점 A를 지나며, 원점 O와 함께 하나의 삼각형을 형성합니다.
절편을 이용한 넓이 계산
주어진 직선의 방정식을 절편 형태(intercept form)로 변환하면 아래와 같습니다.

여기서 x절편은 −𝑐∕𝑎, y절편은 −𝑐∕𝑏가 됩니다. 원점 O와 두 교점 A, B로 이루어진 삼각형은 직각삼각형이므로, 두 절편의 길이를 각각 밑변과 높이로 사용하여 넓이를 구할 수 있습니다.

이를 정리하면 삼각형의 넓이 공식은 다음과 같습니다.
넓이 = |𝑐²∕(2𝑎𝑏)|
계수의 부호에 따라 계산 결과가 음수로 나올 수 있으므로, 최종적으로 절댓값을 취해 주는 것이 중요합니다.
예제 코드
다음은 위 공식을 C++로 구현한 예제입니다. 함수에 계수 𝑎, 𝑏, 𝑐를 전달하면 삼각형의 넓이를 반환합니다.
#include<iostream>
#include<cmath>
using namespace std;
double areaTriangle(double a, double b, double c){
return fabs((c*c) / (2*a*b));
}
main() {
double a = -2, b = 4, c = 3;
cout << "Area: " << areaTriangle(a, b, c);
}실행 결과
Area: 0.5625
𝑎 = −2, 𝑏 = 4, 𝑐 = 3인 경우, 넓이는 |9 ∕ (2 × (−2) × 4)| = 0.5625로 계산되며, 프로그램 역시 동일한 값을 정확히 출력합니다.