안드로이드
Java 교차점 구하기
SourceTree
2021. 11. 20. 08:56
반응형
두개의 라인이 만나는 교차점을 구하는 방법입니다.
- 라인1 : Point pt1, pt2
- 라인2 : Point pt3, pt4
- 두 라인이 평행이라면 (-1, -1)을 반환
Point getIntersectionPt(Point pt1, Point pt2, Point pt3, Point pt4) {
int x1 = pt1.x, y1 = pt1.y;
int x2 = pt2.x, y2 = pt2.y;
int x3 = pt3.x, y3 = pt3.y;
int x4 = pt4.x, y4 = pt4.y;
int px= (x1*y2 - y1*x2)*(x3-x4) - (x1-x2)*(x3*y4 - y3*x4);
int py= (x1*y2 - y1*x2)*(y3-y4) - (y1-y2)*(x3*y4 - y3*x4);
int p = (x1-x2)*(y3-y4) - (y1-y2)*(x3-x4);
//평행
if(p == 0) {
return new Point(-1, -1);
}
int x = px/p;
int y = py/p;
return new Point(x, y);
}
반응형