![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
Не знаю, правильно ли я выбрал раздел, сделаю пост сюда.
Классика, из пункта А со скоростью V под углом тета вылетает снаряд. Для этой задачи можно использовать школьную параметрическую формулу от времени: Vx = V * cos(teta); Vy = V * sin(teta); x(t) = x0 + Vx*t; y(t) = y0 + Vy*t - g*t*t/2; //g - гравитация Математика пятого класса, как-никак. Да и, собственно Vy = y'(t) = v - gt, т.е. одно и то же. Проблема в том, что траектории варианта 1 и варианта 2 не совпадают. А так как алгоритмы, типа: "знаем скорость и конечную точку, посчитаем угол"(нужны для расчета выстрела компьютерного оппонента) опираются на t, то снаряд промахивается. Наглядно рисуем траектории: var x0:Number = 100; var y0:Number = 200; var angle:Number = -45; var gravity:Number = 3; var t:Number = 100; var v:Number = 25; var vx0:Number = v*Math.cos(angle * Math.PI/180); var vy0:Number = v*Math.sin(angle * Math.PI/180); graphics.lineStyle(1,0xff0000); graphics.moveTo(x0,y0); for (var i:Number =0; i<t; i++){ graphics.lineTo(x0+vx0*i,y0+vy0*i + gravity*i*i*0.5); } graphics.lineStyle(1,0x00ff00); graphics.moveTo(x0,y0); var curx:Number = x0, cury:Number = y0, vy:Number = vy0; for (i = 0; i<t; i++){ curx+=vx0; cury+=vy; vy+=gravity; graphics.lineTo(curx,cury); }
__________________
мой пустой блог |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 497
|
Цитата:
|
|
|||||
|
Регистрация: Nov 2010
Сообщений: 497
|
Ну так то, что точность растет, вполне естественно. Вы на самом деле численно интеграл скорости по времени считаете
. И при уменьшении интервала (и увеличения их количества) точность возрастает. В пределе как раз и будет точное значение. Это все из определения интеграла следует. |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Для данной конкретной формулы можно ошибку при числовом решении загнать считай в 0.
Но если есть формула, то почему бы по ней не посчитать?
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|