Notice
Recent Posts
Recent Comments
Link
빙수달 게임 개발 노트
[C++] 두 선의 교차점을 구하는 프로그램 본문
#include <iostream>
using namespace std;
struct point
{
double x, y;
};
double bottom(point p1, point p2, point p3, point p4);
double crossX(point p1, point p2, point p3, point p4);
double crossY(point p1, point p2, point p3, point p4);
int main()
{
point p1;
point p2;
point p3;
point p4;
cout << "두 직선의 좌표 4점 : ";
cin >> p1.x >> p1.y >> p2.x >> p2.y >> p3.x >> p3.y >> p4.x >> p4.y;
if(((p1.x - p2.x) * (p3.y - p4.y) - (p1.y - p2.y) * (p3.x - p4.x))==0)
{
cout << "두 직선은 평행하다.";
}
else
{
cout << "두 직선의 교차점은 (" << crossX(p1, p2, p3, p4) << "," << crossY(p1, p2, p3, p4) << ")이다.";
}
return 0;
}
double bottom(point p1, point p2, point p3, point p4)
{
double bottom;
bottom = ((p1.x - p2.x) * (p3.y - p4.y) - (p1.y - p2.y) * (p3.x - p4.x));
return bottom;
}
double crossX(point p1, point p2, point p3, point p4)
{
double Px;
Px = ((p1.x * p2.y - p1.y * p2.x) * (p3.x - p4.x) - (p1.x - p2.x)*(p3.x * p4.y - p3.y * p4.x)) / (bottom(p1,p2,p3,p4));
return Px;
}
double crossY(point p1, point p2, point p3, point p4)
{
double Py;
Py = ((p1.x * p2.y - p1.y * p2.x) * (p3.y - p4.y) - (p1.y - p2.y)*(p3.x * p4.y - p3.y * p4.x)) / (bottom(p1, p2, p3, p4));
return Py;
}


'Programming > C++' 카테고리의 다른 글
| [C++] 예금주 설정, 예금 입.출금 함수, 잔액표시 함수 (1) | 2024.12.19 |
|---|---|
| [C++] 학교 사물함 열기 (0) | 2024.12.19 |
| [C++] 점이 원 안에 있는지 판별하는 프로그램 (0) | 2024.12.19 |
| [C++] 동전 시뮬레이션 프로그램 (0) | 2024.12.18 |
| [C++] 두 원의 관계를 판단하는 프로그램 (0) | 2024.12.18 |