我完全被困住了。我有一个椭圆和一条线。线由两个点设置,椭圆 - 由左下角和右上角。我必须使用java找到它们的交点。我试图解决一个方程组:
(1) y = kx + m;
x^2/a^2 + y^2/b^2 = 1;
但我无法让事情正常进行。我认为这是因为 java 的坐标系,但这也可能是我自己的错误,因为我对它感到困惑。
有没有更好的方法来找到交点,如果没有,我怎样才能正确地得到它们?
先感谢您。
代码:
double r1 = in_y2-in_y;
double r2 = in_x2-in_x;
double k = r1/r2;
double m = in_y2 - k*in_x2;
double a = Math.abs((double)x2 - (double)x)/2;
double b = Math.abs((double)y2 - (double)y)/2;
double A1 = 1/(a*a) + (k*k)/(b*b);
double B1 = (2*k*m)/b*b;
double C1 = (m*m)/(b*b);
double D = Math.sqrt(B1*B1 - 4*A1*C1);
double ex1 = (-B1 + D/(2*A1));
double ey1 = k*ex1 + m;
double ex2 = (-B1 - D/(2*A1));
double ey2 = k*ex2 + m;