С.И.Хашин, А.И.Смирнова
Функция
int curve2Coord( int *a, int *b, int *c);
по массиву коэффициентов a[0..5] определит тип кривой и найдет ортогональную замену координат на плоскости (b[0..5]), которая приводит кривую к каноническому виду.
В массиве c[0..1] должны возвращаться коэффициенты кривой в канонической форме. Например, для эллипса с уравнением
c[0] = a, c[1] = b.
Данная функция принимает массива a[6] из коэффициентов уравнения кривой второго порядка, вида
ссылки на массивы b[6] и c[2] для возможности их изменения. При завершении работы функции:
1. В массиве b[6] хранятся коэффициенты смещения(b[0], b[3]) и поворота системы координат(b[1],b[2],b[4],b[5]), такие, что:
x2=b[0]+b[1]x+b[2]y y2=b[3]+b[4]x+b[5]y
2. В массиве c[2] хранятся такие a и b, что x^2/a^2+(-)y^2/b^2=1(0) является каноническим уравнением. В случае, если уравнение кривой задает параболу, пару параллельных или совпавших кривых, то одно из значений массива c[2] равно нулю.
3. Возвращается число:
0 - уравнение не задает кривой второго порядка 1 - уравнение задает эллипс 2 - уравнение задает мнимый эллипс 3 - уравнение задает пару мнимых пересекающихся прямых 4 - уравнение задает гиперболу 5 - уравнение задает пару пересекающихся прямых 6 - уравнение задает параболу 7 - уравнение задает пару параллельных прямых 8 - уравнение задает пару мнимых параллельных прямых 9 - уравнение задает пару совпавших прямыхТаким образом, функция может быть использована:
!!! Проверить параболу !!!