C/C++の宿題を片づけます 49代目
■ このスレッドは過去ログ倉庫に格納されています
0017デフォルトの名無しさん
2005/08/11(木) 12:37:54>>9
ま、斜めを考慮しないなら
/* 外側なら正、楕円上ならゼロ、内側なら負を返す */
int wrt_ellipse(double x1, double y1, double x2, double y2, double x, double y)
{
double x0, y0, a, b, d;
x0 = (x1 + x2) / 2.0; y0 = (y1 + y2) / 2.0; a = (x2 - x1) / 2; b = (y2 - y1) / 2;
d = (x - x0) * (x - x0) / (a * a) + (y - y0) * (y - y0) / (b * b);
return d == 1.0 ? 0 : (d > 1.0 ? 1 : -1);
}
■ このスレッドは過去ログ倉庫に格納されています