Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2009, 19:07   #1
V@mpir
Пользователь
 
Регистрация: 18.03.2009
Сообщений: 54
По умолчанию Построение траектории полета пули

Использую канвас в следующих целях... Строю график полёта пули, имеются формулы для нахождения промежуточных значения "х" и "у"
x=v0*cos(ugla)*t
y=v0*t*sin(ugla)-(g*t( v kvadrate))/2
Вопросов и проблем "море"... Я не как не могу построить график параболической формы, который отображал бы полёт пули... он абсолютно не соответствует реальности...

Цитата:
Находим массштаб вывода графики
if h>=s then
M:=390/h;
if s>h then
M:=390/s;

// label12.Caption:=IntToStr(M);
//Чертим график полета
with Form1.Canvas do
begin
Pen.Width:=2;
Pen.color:=clRed;
Brush.Color:=clRed;
MoveTo(10,400);
LineTo(385,400);
LineTo(375,405);
MoveTo(385,400);
LineTo(375,395);

Ellipse(5,405,15,395);

MoveTo(10,400);
LineTo(10,20);
LineTo(5,30);
MoveTo(10,20);
LineTo(15,30);

Pen.Width:=1;
Pen.color:=clBlue;
Pen.Style:=psDot;//пунктирная линия

// Pen.Style:=psDot;
inth:=Round(h * M);
ints:=Round(s * M);

MoveTo(10,400-inth);
LineTo(ints ,400-inth);

(*
Pen.color:=clRed;
Brush.Color:=clWhite;
TextOut(100,100,'Вывод текста');
*)
// MoveTo(10,400-100);
//LineTo(200 ,400-100);
label12.Caption:='M='+FloatToStr(M) +' s='+IntToStr(ints)+' h='+IntToStr(inth);
MoveTo(10,400);

tim:=Round(s/v);


for t:=0 to tim do
begin
s:=v*t*Cos(alfa);
h:=v*t*Sin(alfa)-(g*t*t)/2;
// ЗДЕСЬ И ЕСТЬ ПРОБЛЕМА

inth:=Round(h * M);
ints:=Round(s * M);
Pen.Width:=2;
Pen.color:=clGreen;
LineTo(10+ints,400-inth);
// ИЛИ ЗДЕСЬ

Еще раз: Необходимо построить график на основе выше переведенных формул, график отдаленно напоминает параболу (тоесть это не тупо две линии от нуля до макс. высоты и от макс.высоты до макс.длины). Где просчет?

PS. Все переменные в формуле известны...


По сути есть парабола, ну или нечто похожее на неё, известна вершина параболы, известно, где она пересекает ось Х ( две точки, две ветви), как её выстроить...грубо - соединить эти три точки дугою)) хоть так пусть

Последний раз редактировалось V@mpir; 11.12.2009 в 19:52.
V@mpir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение рисунка по траектории Noob333 Помощь студентам 1 28.04.2009 10:42
Рассчитать время полета ракеты. VC++ C71Me Помощь студентам 5 22.02.2009 19:03
Движение фигуры по траектории Dgohn Общие вопросы Delphi 3 08.01.2009 09:36
Анимация движения точки по траектории ariant Microsoft Office Excel 4 25.12.2008 06:28