私は完全に立ち往生しています。楕円と線があります。線は、楕円の2つのポイント、つまり左下隅と右上隅によって設定されます。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;