С.И.Хашин, А.И.Смирнова
Функция
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 - уравнение задает пару совпавших прямых
Таким образом, функция может быть использована:
!!! Проверить параболу !!!