К оглавлению

Приведение кривой 2-го порядка к каноническому виду

С.И.Хашин, А.И.Смирнова


curve2.h - заголовочный файл
curve2.cpp - реализация.

Функция

int curve2Coord( int *a, int *b, int *c);

по массиву коэффициентов a[0..5] определит тип кривой и найдет ортогональную замену координат на плоскости (b[0..5]), которая приводит кривую к каноническому виду.

В массиве c[0..1] должны возвращаться коэффициенты кривой в канонической форме. Например, для эллипса с уравнением

x^2/a^2 +y^2/b^2 =1
будем иметь:
c[0] = a,
c[1] = b.

Данная функция принимает массива a[6] из коэффициентов уравнения кривой второго порядка, вида

a[0] + a[1]*x + a[2]*y + a[3]*x*x + a[4]*x*y + a[5]*y*y=0,

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

!!! Проверить параболу !!!

К оглавлению


free counters