Это алгебраическая задача, которую можно решить с помощью систем линейных уравнений. http://en.wikipedia.org/wiki/System_of_linear_equations
Как правило, кривая, проходящая через N точек, является полиномом (N-1)-й степени. Итак, если вы хотите найти полином, который проходит через 3 точки (например, (-1,1), (0, 3), (1, -1)
), вам понадобится квадратное уравнение, подобное этому: ax^2+bx+c=y
.
Чтобы найти значения a, b и c, вам нужно подставить координаты x и y, а затем решить систему уравнений.
a(-1)^2+b(-1)+c=1
a(0)^2+b(0)+c=3
a(1)^2+b(1)+c=-1
что упрощает до
a-b+c=1
c=3
a+b+c=-1
Отлично, у нас уже есть c=3. Комбинируя первое уравнение и второе, мы можем получить
2a+2c=0
Поскольку мы знаем, что c=3, это становится
2a+3=0
So a=-1.5
.
Отсюда мы можем поместить эти значения a и c в последнее уравнение, чтобы получить это
-1.5+b+3=-1
Что дает b=-3.5
. Подстановка этих значений a, b и c обратно в квадратное уравнение дает это
-1.5x^2-3.5x+3=y
Я дважды не проверял свои математические расчеты, но если я все сделал правильно, это даст квадратичную кривую, проходящую через три точки.
Несомненно, для этого уже существует библиотека, но, к сожалению, я не знаю, что это будет. Надеемся, что знание математики, стоящей за вашей проблемой, поможет вам найти ответ.
person
Jonbobbly
schedule
05.03.2013