|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
моделирование машины Атвуда
Здравствуйте, может у кого имеются исходники программы на Делфи, реализующей систему машины Атвуда (2 груза подвешаны на нити, перекинутой через блок) ? Буду очень признателен. Нашел только экзешник, скомпиленный на С++. Кому надо, могу поделиться)
|
#2
|
||||
|
||||
Исходника я не нашел, а вот подробное описание с формулами вот:
http://learning.itsoft.ru:8000/codin...ab02/main.html Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
Цитата:
Спасибо за формулы, но меня больше интересует как реализовать правильную работу таймера. Движение то равнопеременное, с постоянным ускорением. То есть интервал таймера должен постоянно меняться, чтобы грузы опускались с ускорением. И вот тут я как раз и не знаю как это реализовать. Может кто-нибудь подскажет?) |
#4
|
||||
|
||||
свойство interval ?
|
#5
|
||||
|
||||
Не может таймер меняться. У вас изменятся может расстояние пройденное грузом за 1 сек.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#6
|
||||
|
||||
Цитата:
Ускорение - есть приращение (положительное или отрицательное) скорости... Т.е. в каждий конкретный момент времени скорость 'V' Цитата:
'S' расстояние пройденое за конкреный промежуток времени... В начале был Бит, потом Байт и только потом появилось Слово... Последний раз редактировалось NIch, 30.05.2010 в 12:24. |
#7
|
|||
|
|||
Ну это понятно что расстояние пройденное грузом за 1 секунду с каждой секундой будет увеличиваться. К примеру интервал таймера = 1 секунда. Тоесть грузы у меня будут двигаться раз в секунду, но проходя все большее расстояние. Хотя, если интервал выбрать поменьше, то должно смотреться более естественно. Чота я уже запутался совсем) Тогда я так понял время t в программе надо писать таким же как и интервал таймера. Тоесть интервал=100, значит t=0.1 секунда. Так штоли?)
|
#8
|
||||
|
||||
Ну почти так...По моему так
Код:
const a = 10;//Приращение к перемещению (ускорение) type TPoint = record//Тип точка x: word;//Координаты точки y: word; end; var s: word;//Перемещение в единицу времени ... OnCreate; begin s := 0;//инициализируем переменную end; ... OnTimer; var Point: TPoint;//Переменнаяточка begin Point.x := 100;//Координата X не изменяется s := s + a;//Перемещение в единицу времени Point.y := Point.y + s;//Координата увеличивается на перемещение ... //Дальше расчитав координаты точки в каждый момент времени //рисуй че хочешь ... end; В начале был Бит, потом Байт и только потом появилось Слово... |
#9
|
|||
|
|||
Дак вот именно что при расчете по формулам ускорение и перемещение будут в метрах(сантиметрах, милиметрах). А мне нужно чтобы переместилось на n-ое количество пикселей. Я так понимаю раз это моделирование, значит все должно быть достоверно) Или я что-то не так понимаю?)
|
#10
|
||||
|
||||
А какая собственно разница милиметры или пиксели?
По моему в формуле нет единиц измерения...Ну или если так хочется, то масштабируй себе на здоровье...Например 10 пикселей на мм... Пиксели понятие растяжимое ибо это точка на экране, и при разрешении 800х600 расстояние не то же что при 1024х768... В начале был Бит, потом Байт и только потом появилось Слово... |