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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2008, 23:59   #1
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Стрелка Полёт Бумеранга - Pascal

Неполучается заставить двигаться так как надо объект бумеранг, неправильно отрисовывается движение. Исходные данные: Точка старта, угол старта, скорость запуска. Хотелось бы получить возвратное движение в исходную точку. Формула поворота точки нашол в инете, только поворачивает фигуру не так как надо, ездит по всему экрану, а надо по средней точке основания(как бы крутится).
Помогите исправить, уже который день сижу голову ломаю.
Спасибо кто поможет.
Вложения
Тип файла: rar 1_1.rar (1.9 Кб, 24 просмотров)
Alter вне форума Ответить с цитированием
Старый 24.06.2008, 00:41   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

В процедуру Rotat нужно передавать либо координаты вращаемых точек относительно оси вращения, либо передавать абсолютные координаты оси и вычитать их внутри процедуры из абсолютных координат вращаемых точек. А потом - прибавлять то, что получилось к координатам центра вращения.
B_N вне форума Ответить с цитированием
Старый 24.06.2008, 17:05   #3
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Сообщение

Переделал, только теперь надо сделать полёт бумеранга. Как его релизовать с возвратом в стартовую точку, чтобы за экран неулетал?
Вложения
Тип файла: rar 1_2.rar (2.0 Кб, 30 просмотров)
Alter вне форума Ответить с цитированием
Старый 24.06.2008, 19:10   #4
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

1. Нужно задать уравнение движеия бумеранга.
2. Нужно написать процедуру вращения бумеранга вокруг оси.


Цитата:
Точка старта, угол старта, скорость запуска.
Что такое "угол старта"? В Вашей версии программы он может быть от 0 до 360 градусов....... Я смутно представляю как это будет происходить....
Может быть лучше ограничить эот угол например от 0 до 60 град?
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 24.06.2008, 23:14   #5
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Сообщение

"Угол старта" - это угол под которым начинает движение объект.
Изменю угол до [0..60].
Так как задать движение(пример реализации)?
Вращение имеется, он же вращает себя при движении.
Alter вне форума Ответить с цитированием
Старый 25.06.2008, 00:01   #6
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Alter, а в чём вообще заключается задача? Бумеранг бросается, вообще говоря, из вертикального положения и на виде сверху его вращения видно не будет. А траектория его движения весьма "хитрая", так что её, может быть, стоит задать изначально? Вряд ли задача состоит в том, чтобы её вычислять?...
B_N вне форума Ответить с цитированием
Старый 25.06.2008, 08:47   #7
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Просто объект движется под определёным углом по экрану, указвают точку запуска, и по идеи должен тупо вернуться назад(по элипсу например как реализовать движение?).
Если задавать самому, то через чего прописать траекторию?
Поправьте как надо, или пример создания трактории.

Последний раз редактировалось Alter; 25.06.2008 в 08:51.
Alter вне форума Ответить с цитированием
Старый 25.06.2008, 15:11   #8
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Надо вбрать траекторию. Взять листик и описать её математически.
В лоб очень трудно сделать.

Вот я набросал отрисовку простеньклй для бумеранга.
Угол наклона от -15 до 40. Там просто за экран зайдёт картинка:

Код:
Uses CRT, Graph;

Const Pi = 3.1415926;

Var x_n, y_n, dL, a, y, x : Real;
    d, e, r : Integer;
    x_c, y_c : Real;
    dF : Integer;

Begin
x_n := 50; y_n := 400; dL := 0;

Readln(a);

d := Detect; InitGraph(d, r, '');
e := GraphResult;

While dL <= 350  Do
      Begin
           dL := dL + 0.5;
           y := y_n - dL * Sin(a * Pi/180);
           x := x_n + dL * Cos(a * Pi/180);
           PutPixel(Round(x), Round(y), Red);
      End;

x_c := x_n + dL * Cos((a + 15) * Pi/180);
y_c := y_n - dL * Sin((a + 15) * Pi/180);

While dF < 200 Do
    Begin
         dF := dF + 1;
         x := x_c + 91 * Cos((dF + 275 + a) * Pi/180);
         y := y_c - 91 * Sin((dF + 275 + a) * Pi/180);
         PutPixel(Round(x), Round(y), Red);
    End;

dL := 350;
For dF := 1 To 700 Do
      Begin
           dL := dL - 0.5;
           y := y_n - dL * Sin((a + 30) * Pi/180);
           x := x_n + dL * Cos((a + 30) * Pi/180);
           PutPixel(Round(x), Round(y), Red);
      End;

Readln;
CloseGraph;
End.
Основная отрисовка делалась по формулам. Коегде значение подбирал методом тыка.
Кое где криво, но это мне просо уже надоело думать почему делается не так и я делал лишбы запустилось....
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 25.06.2008, 16:45   #9
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

А если без метода тыка, есть же формула эллипса, нужно поискать (а можно и спросить) у математиков. Задать начальную точку (а точнее угол), центр эллипса, и потом по формуле продолжать, с определенным шагом в градусах. Наибольшее удаление будет при удалении на 180° от исходного, возврат в исходную точку 360°. А расстояние до центра эллипса пропорционально силе броска.

По кругу я делал движение по формуле, но не уверен что для эллипса она та же, если та же, то я дам код.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 25.06.2008, 16:55   #10
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

У меня не просто эллипс.

У меня сначала летит по прямой, затем вырисовывает кусок окружности и возвращается назад...

Тость сложня фунция.

Стандартные картинки это не интересо

ЗЫ: к сожалению принскрин с кране сдеать неполучилось... Вдимо кнопка принскрин не там ищит
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БД на Pascal Умелец Помощь студентам 24 16.09.2010 20:44
Need help, Pascal Бедный студент Помощь студентам 0 31.05.2008 01:38
Pascal Vedma Помощь студентам 2 22.12.2007 15:25
Pascal bladebreaker Помощь студентам 2 23.05.2007 22:15