Недавно добавленные исходники

•  Animation Loaders  1 073

•  DeLiKaTeS Tetris (Тетрис)  6 005

•  TDictionary Custom Sort  7 949

•  Fast Watermark Sources  7 592

•  3D Designer  10 847

•  Sik Screen Capture  8 176

•  Patch Maker  8 379

•  Айболит (remote control)  8 413

•  ListBox Drag & Drop  7 281

•  Доска для игры Реверси  101 640

•  Графические эффекты  8 467

•  Рисование по маске  7 834

•  Перетаскивание изображений  6 427

•  Canvas Drawing  6 811

•  Рисование Луны  6 749

•  Поворот изображения  5 844

•  Рисование стержней  4 796

•  Paint on Shape  3 486

•  Генератор кроссвордов  4 514

•  Головоломка Paletto  3 628

 

 

Каталог исходников

   
  Базы данных
  Графика & Мультимедиа
  Сети & Интернет
  Система
  Разное
   

 

 

Delphi Sources

Delphi Sources

 




 

ИСХОДНИК ПРОГРАММЫ

 

. : Simple Cart : .

 

Delphi - Моделирование физического мира в виде простой тележки с гравитационным приводом

Исходник программы, показывающей пример моделирования физического мира, представляющего собой простую тележку на которую действует гравитация. Тележка умеет ускоряться под действием силы тяжести и имеет трение качения, которое в конечном итоге заставит ее двигаться по инерции до остановки.

Идея исходника состоит в том, чтобы получить объект TCart, который ведет себя реалистично, катясь по дорожке под разными углами (вверх и вниз), с разными уровнями гравитации, массы и трения.

По соглашению мы будем использовать положительные значения для дорожки, спускающейся вправо, и отрицательные значения для восходящей влево. Затем сила гравитации, действующая прямо вниз, делится на две составляющие: одна толкает под прямым углом к рельсу, масса * сила тяжести * cos (тета), а другая действует параллельно рельсу и может перемещать тележку, масса * сила тяжести * sin (тета). Существует некоторое сопротивление, пытающееся удержать тележку от ускорения, в частности трение качения, вызванное трением в колесах и осях, и небольшая деформация гусеницы, когда колеса перекатываются по ней. Также есть сопротивление из-за того, что тележка выталкивает воздух в сторону при движении, мы пока проигнорируем это. Противодействующая сила из-за трения качения пропорциональна весу, прижимающемуся к гусенице, и коэффициенту трения качения (трения). Итак, противодействующая сила = трение * масса * сила тяжести * cos (тета). Тележка будет ускоряться, согласно Ньютону, на величину, прямо пропорциональную приложенной чистой силе и обратно пропорциональную массе, a = (сила противодействия вспомогательной силе) / масса. Обратите внимание, что до тех пор, пока масса не равна 0, она просто сокращается, то есть вещи с большей массой сильнее прижимаются к земле, но требуется больше силы, чтобы заставить тяжелые вещи двигаться.

Процедура DrawCart использует технику «спрайтов» для рисования тележки. Идея состоит в том, чтобы захватить часть фонового изображения, на котором будет нарисована тележка, перед тем, как нарисовать тележку. Когда придет время снова нарисовать тележку, мы восстановим фон (стираем старое изображение тележки), а затем сделаем новый фрагмент фонового изображения для нового местоположения тележки. Растровое изображение, Savebg, определено для хранения фонового изображения. Saverect - это запись TRect, содержащая координаты области, которую нужно сохранить и восстановить.

Просмотры: 1 500
Дата: 07.07.2021, Автор: Gary Darby
Скачивания: 21
Написать сообщение:

 

Скачать (6 Кб)     Регистрация >>


 

Похожие исходники


Simple Graph

Simple Bitmap Rotation

Simple Mail

Simple Sniffer

 

Simple WebBrowser (браузер)

Simple WinAmp

Simplex Method

Simple Memory Seeker

 

Cartman Cipher

Cartman Hash

TrashCart

 

© 2004-2026 "DS"

Соглашение пользователя • Конфиденциальность • Правила обработки cookie       SiteAnalyzer


Форум по Delphi программированию - Ошибка базы данных

Кажется, произошла проблема с базой данных Форум по Delphi программированию.
Пожалуйста, попробуйте зайти снова, нажав на кнопку Обновить вашего браузера.

Нашей службе технической поддержке был послан email. Вы также можете написать им письмо, если проблема не решиться.

Извените за причинённые неудобства.