| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Object Pascal: кроссплатформенные технологии > Помогите написать функцию |
| Автор: DoZENT 9.7.2007, 19:14 |
| Помогите пожалуйста! Необходимо определить уравнение параболы по трем точкам. Может есть готовая процедура? |
| Автор: Throne 9.7.2007, 20:32 |
| я считаю, что такое лучше спрашивать у твоего преподавателя математики. если у тебя есть математическое решение этой задачи, то программу написать не сложно. |
| Автор: DoZENT 9.7.2007, 21:21 | ||
Все дело в том, что нет этого решения(( |
| Автор: Throne 9.7.2007, 21:54 |
| три точки даются в виде F(x1)=n1, F(x2)=n2, F(x2)=n2, где x1,2,3 - произвольные или идущие строго по порядку? |
| Автор: DoZENT 9.7.2007, 22:05 |
| Throne, координаты точкек задаются произвольно (использую random и рисую их в PaintBox). |
| Автор: SPrograMMer 9.7.2007, 22:10 |
| Ну давай вспоминать чего тама за уравнение этой самой параболы...прально... квадратное уравнение с тремя коэффициентами... вот... у тебя три точки с координатами x и y... подсталяй их три раза вместо x и y в уравнение и вычисляй неизвестные тебе коэффициенты... всего-то система из трех ЛИНЕЙНЫХ уравнений с тремя неизвестными... осталось токо сотворить решение этой самой системы... ну тут уж дело так сказать... плёвое... рисуем се на бумажке такую систему в общем виде и решаем |
| Автор: Throne 9.7.2007, 22:23 | ||
не ты не понял что я спрашиваю. у нас данные задачи какие? при х1=(число) у1=(число) при х2=(число) у2=(число) при х3=(число) у3=(число) Так? или просто: у2=(число) у2=(число) у2=(число) |
| Автор: DoZENT 9.7.2007, 22:33 | ||||
| SPrograMMer, да, плевое... Мозги уже совсем не варят, а проект сдавать завтра (можно сказать почти сегодня). Throne, данные задачи: Компьютер случайным образом задает координаты 3 точек. Провести через них параболу и треугольник, рассчитать площади образованных фигур. Ну построю-то я сам, мне самое главное функцию этой параболы найти. В интернете нашел такое решение:
но оно почему-то не работает(( (делаю так):
Коэффициент A почему-то всегда оказывается равен нулю(( |
| Автор: Throne 9.7.2007, 22:54 |
| ща напишу решение. ток поем. и кино досмотрю. короче к часу увидишь. |
| Автор: DoZENT 9.7.2007, 22:57 |
| Throne, спасибо тебе огромное заранее, с меню много-много плюсов |
| Автор: DoZENT 10.7.2007, 01:12 |
| Throne, ну спасибо((( |
| Автор: Nite 10.7.2007, 10:17 |
| DoZENT, все просто. У тебя есть три точки (x1,y1) (x2,y2) (x3,y3) Также есть парабола y=a*x^2+b*x+c Получаешь систему из трех линейных уравнений a*x1^2+b*x1+c=y1 a*x2^2+b*x2+c=y2 a*х3^2+b*х3+c=y3 Решаешь ее относительно неизвестных a, b и c. Можно через матрицы, можно методом Гаусса. Или ты это тоже не умеешь? |
| Автор: Throne 10.7.2007, 12:15 | ||
Сначала находим D: D = x1^2 * x2 + x2^2 * x3 + x3^2 * x1 - ( x3^2 * x2 + x2^2 * x1 + x1^2 * x3) Затем находим Da, Db и Dc: Da = y1 * x2 + y2 * x3 + y3 * x1 - (y3 *x2 + y2 * x1 + y1 * x3) Db = x1^2 * y2 + x^2 * y3 + x3^2 * y1 - ( x3^2 * y2 + x2^2 * y1 + x1^2 * y3) Dc = x1^2 * x2 * y3 + x2^2 * x3 * y1+ x3^2 * x1 * y2 - ( x3^2 * x2 * y1 + x2^2 * x1 * y3 + x1^2 * x3 * y2) Ну и в конце находим соответственно a, b и c: a=Da/D b=Db/D c=Dc/D |
| Автор: DoZENT 10.7.2007, 21:52 |
| Nite, то что ты написал я знал, мне нужно было вычисление коэффициентов a,b,c из этого уравнения. В любом случае всем большое спасибо, все сдал на 5 |