bool lineIntersection(cv::Point2f &c1, cv::Point2f &c2, cv::Point2f &d1, cv::Point2f &d2, cv::Point2f &intersection) {
/*
두 점 A(x1, y1), B(x2, y2)을 잇는 직선의 방정식
y = ax + b (a : 기울기 = y증가량/x증가량, b : 상수)
a = (y2-y1)/(x2-x1)
y = (y2-y1)/(x2-x1)x + b
b = y - (y2-y1)/(x2-x1)x
b = y1 - (y2-y1)/(x2-x1)x1
!!!!! y = (y2-y1)/(x2-x1)x + (y1 - (y2-y1)/(x2-x1)x1) !!!!!
방정식 1 : y = a1x + b1
방정식 2 : y = a2x + b2
(a1-a2)x = (b2-b1)
x = (b2-b1)/(a1-a2)
방정식 1에 대입하면
y = a1((b2-b1)/(a1-a2)) + b1
교점의 좌표 (x,y) = ( (b2-b1)/(a1-a2), a1((b2-b1)/(a1-a2)) + b1)
*/
float a1, b1, a2, b2;
a1 = (c2.y - c1.y) / (c2.x - c1.x);
//b1 = c1.y - (((c2.y - c1.y) / (c2.x - c1.x))*c1.x);
b1 = c1.y - (a1*c1.x);
//cout << "test:x:" << intersection.x << endl;
a2 = (d2.y - d1.y) / (d2.x - d1.x);
//b2 = d1.y - (((d2.y - d1.y) / (d2.x - d1.x))*d1.x);
b2 = d1.y - (a2*d1.x);
if (a1 == a2) return false;//평행이나 일치인 경우
intersection.x = (b2- b1) / (a1 - a2);
intersection.y = a1*(intersection.x) + b1;
cout << "test:x:" << intersection.x << endl;
cout << "test:y:" << intersection.y << endl;
return true;
};