Ох, не трогал тригонометрию лет 8, но можно попробовать...
Дальнейшие рассуждения будут для декартовой системы координат, в принципе наверн можно и на ширину/долготу распространить.
пусть (x1, y1) и (x2, y2) заданные точки.
Синусоиду надо искать в виде K*sin(x+a)+b, где K, a и b некоторые константы, которые надо найти
Имеем:
K*sin(x1+a)+b = y1
K*sin(x2+a)+b = y2
На K можно разделить и логика дальнейшая не поменяется, поэтому я для простоты сразу буду считать K=1:
sin(x1+a)+b = y1
sin(x2+a)+b = y2
Откуда:
sin(x1+a) - sinx(x2+a) = y2 - y1
По формуле разницы синусов:
2 * cos((x1+x2+2a)/2) * cos((x1-x2)/2) = y2 - y1
Заменим x1+x2+2a = t, и получим:
cos(t) = (y2 - y1) / (2*cos((x1-x2)/2))
В правой части число, которое мы можем вычислить. Имеем простейшее тригонометрическое уравнение, из которого легко найти t (
www.bymath.net/studyguide/tri/sec/tri16.htm). Знаем t - знаем a. Подставим в sin(x1+a)+b = y1 и найдем b.
Собственно все, теперь рисуем график f(x) = sin(x+a) + b
ЗЫ: стоит отметить, то решений может и не быть, т.к. не через любые две точки можно провести синусоиду с периодом 2пи
ЗЫ2: возможно, что я где-то не прав, решение выше написал с наскоку, что называется - на коленке.