Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/39: Рейтинг темы: голосов - 39, средняя оценка - 4.79
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467

Физический движок

01.08.2011, 19:05. Показов 7783. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Драсти

У меня вопрос к программистам,как правильно реализовать простенький физический движок то есть тот который будет просчитывать свойства тела по введеным в него данным:
1.скорость тела
2.масса
3.сила тяжести(делается так чтобы можно было делать расчёты в разных среда(космос и т.п.))
4.плотность среды в которой находецо тело(в воде,воздухе и т.п.)
Потом остальные пункты будут добавляться по мере разростания проекта.

Я думаю реализовать это с помощью функций то есть собирается нужная информация и отпровляется в функции где она используется.
Потом выводится полная информация о теле и выводится на экран.


Так теперь сам вопрос каким образом его реализовать консолью или WinAPI?
И будет ли работать такая идея с функциими ?

P.S.Это мой первый более-мение серьезный проект,так что не судите строго если я где сморжу глупость(или уже сморозил)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.08.2011, 19:05
Ответы с готовыми решениями:

Физический движок Box2d, сборка статической библиотеки
Здравствуйте. Я новичок и решил впервые собрать статическую библиотеку из Box2D. При первой попытке получил ошибку Embarcadero C++...

Физический смысл паттернов
В чем состоится физический смысл паттернов, где найти литературу на эту тему?

Модель преобразования виртуального адреса в физический адрес
Доброго времени суток. Необходимо создать программу преобразующею виртуальный адрес в физический. Вот исходные данные: организация...

19
385 / 229 / 12
Регистрация: 06.07.2011
Сообщений: 512
01.08.2011, 19:09
повикипедируй - там есть ссылки на свободно распространяемые движки и опенсорс. повникай. обычно, действительно "серьезные" проекты строятся не с нуля, а отталкиваясь от чего-то готового, либо уже разрабатывавшегося. конечно, придумать можно много способов реализации всего этого, только зачем, если можно пройти протоптанной дорогой.

вопрос про WinAPI и консоль не имеет смысла. использоваться они будут только для тестирования и демонстрации работы твоего движка, а эти вещи должны быть отделены от основной части проекта. если тебе нужна особая наглядность, то, конечно, winapi (вплоть до ogl и dx). если важна информативность и простота, то консоль.
0
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467
02.08.2011, 11:22  [ТС]
Сегодня нашел и скачал исходники движков quake2\3 но они на Си а мне желательно на Си++.
Не подскажете какой-нибудь полностью бесплатный движок си++?
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
02.08.2011, 11:40
leoned, а что вам мешает разобраться в движке написаном на Си?
0
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467
02.08.2011, 12:17  [ТС]
Цитата Сообщение от Maxwe11 Посмотреть сообщение
написаном на Си
полное не знание си(
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
02.08.2011, 12:18
Цитата Сообщение от leoned Посмотреть сообщение
полное не знание си(
Си является подмножеством С++, тогда о каком знании С++ может идти речь
0
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467
02.08.2011, 12:20  [ТС]
Цитата Сообщение от Maxwe11 Посмотреть сообщение
каком знании С++ может идти речь
минимальном только не давно функции изучил
0
Заблокирован
02.08.2011, 12:35
Цитата Сообщение от Maxwe11 Посмотреть сообщение
Си является подмножеством С++
http://ru.wikipedia.org/wiki/Objective_C является надмножеством над С, С++ - нет
0
385 / 229 / 12
Регистрация: 06.07.2011
Сообщений: 512
02.08.2011, 12:52
может тогда стоит замахнуться на что-то попроще? примеру, переделать все упражнения из учебника по с и с++
1
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
02.08.2011, 16:03
Цитата Сообщение от LosAngeles Посмотреть сообщение
http://ru.wikipedia.org/wiki/Objective_C является надмножеством над С, С++ - нет
И при этом Си является подмножеством С++.
1
 Аватар для xAtom
935 / 760 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
02.08.2011, 17:26
Есть замечательный движок PhysX от NVIDIA я думаю лучше его нет, самому написать типа такого не под силу даже разработчику с многолетним стажем. Под словом физический движок скрывается очень сложное выполнение исходного кода, сюда входит такое как морфирующия анимация, скелетная анимация, кукольная анимация, исполнения ветра на действие окружающей среды на одежду, листья деревьев, бурление воды, объёмные падающие тени, столкновения различных масс. Если ты собираешься писать его для игр и трёхмерных сцен, то надо юзать DirectX или OpenGL я в свои времена использовал движок RenderWare. Вообще я рекомендовал посетить такие ресурсы где разработчики занимаются этим делом www.gamedev.ru ещё лучше англо-язычный www.gamedev.net, для начала скачай книгу Джима Адамса "Поодвинутая анимация", если её осилешь тогда дальше легче будет.
0
 Аватар для AnyOne697
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
05.06.2012, 17:24
Цитата Сообщение от Deviaphan Посмотреть сообщение
Сообщение от LosAngeles
http://ru.wikipedia.org/wiki/Objective_C является надмножеством над С, С++ - нет
И при этом Си является подмножеством С++.
Так нет же!
Это просто два очень похожих языка. Си эволюционировал в Си++. Подмножество, это когда любой элемент из А содержится в А'. В этом случае А есть надмножество A', а A' - подмножество А. Одно понятие определяет другое.
C++
1
print("%s", (sizeof('a') == sizeof(char) ? "C++" : "C")
То есть есть различия между Си и Си++.
З.Ы. Я "спасибо" не хотел говорить. Просто промахнулся =(
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
05.06.2012, 17:39
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Подмножество, это когда любой элемент из А содержится в А'.
И? Ты же подтверждаешь мой скопипастенный(у автора языка...) тезис. Любой код на языке Си компилируется на С++ компиляторе. Никто не утверждает, что бинарный код будет одинаковый, но функционально программа при этом будет эквивалентная.

Конкретно по твоему примеру. Это задокоментированная особенность реализации. В Си, символьные константы на самом деле имеют тип int. И даже в те далёкие времена, делать код, зависящий от такой особенности мог только криворукий программист. Поэтому где следовало, стояло приведение типа.
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.06.2012, 18:01
Цитата Сообщение от Deviaphan Посмотреть сообщение
Любой код на языке Си компилируется на С++ компиляторе
Далеко не любой.
Есть несколько десятков особенностей С, которые не скомпилируются в с++.
1
 Аватар для AnyOne697
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
05.06.2012, 18:04
Цитата Сообщение от Deviaphan Посмотреть сообщение
Любой код на языке Си компилируется на С++ компиляторе.
Смешно видеть это от "Эксперта Си++".
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
int i = 10;
 
int main(){
    if(i){
        printf("%d\n", i--);
        main();
    }
    
    return i;
}
Попробуйте откомпилировать компилятором, полностью соответствующего документации (к сожалению, таких не очень много) и без "хаков" (то беж настроек, которые использовать не следует).

Си++
Си

Удачи в познаниях!

P.S.
Цитата Сообщение от Deviaphan Посмотреть сообщение
Подмножество, это когда любой элемент из А содержится в А'.
Я здесь ошибочку допустил. А следует поменять местами с А'.
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
05.06.2012, 18:19
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Попробуйте откомпилировать компилятором, полностью соответствующего документации
У меня нет на 100% соответствующего стандарту, поэтому использовал MSVC2010. В этом коде не увидел элементов, которые описаны в исключениях для студии, так что используемые структуры стандарту соответствуют.

0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
05.06.2012, 18:30
Даже не так


Т.е., если вы пишите говнокод и он оказывается не совместим, то это как бы ваши проблемы...
И выдумщику языка С++ я как-то больше верб на слово. Если Бьярн говорит, что Си это подмножество С++, то так оно и есть.
1
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
05.06.2012, 18:31
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Смешно видеть это от "Эксперта Си++".
Так нигде и не написано, что эксперт Си. Си я вообще не знаю, если что.
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.06.2012, 18:35
Цитата Сообщение от Deviaphan Посмотреть сообщение
У меня нет на 100% соответствующего стандарту, поэтому использовал MSVC2010. В этом коде не увидел элементов, которые описаны в исключениях для студии, так что используемые структуры стандарту соответствуют.
Рекурсивный вызов мейна запрещен в с++.

Цитата Сообщение от Deviaphan Посмотреть сообщение
Если Бьярн говорит, что Си это подмножество С++, то так оно и есть.
Он говорил, что с++ разрабатывался, как надмножество. А это совсем другое.

Цитата Сообщение от Deviaphan Посмотреть сообщение
Т.е., если вы пишите говнокод и он оказывается не совместим, то это как бы ваши проблемы...
Когда с++ только разрабатывался, люди писали на С и не задумывались о совместимости с еще не придуманным языком. Поэтому далеко не каждый старый код можно портировать на с++.
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
05.06.2012, 18:45
Цитата Сообщение от diagon Посмотреть сообщение
Он говорил, что с++ разрабатывался, как надмножество. А это совсем другое.
Чуть выше я привёл скриншот цитаты того, что он говорил. А он говорил, что за исключением говнокода, Си является подмножеством С++.

Не по теме:

Буду рад, если сможешь переубедить меня в том, что рекурсивный вызов main это не говнокод.)



Добавлено через 3 минуты
Хотя я вообще не понимаю темы данного оффтопа. Лично я считаю Си и С++ совершенно разными языками и сходий синтаксис считаю приятным совпадением. Не более того.
И поэтому считаю, что очень хороший Си программист будет пустышкой в кодинге на С++ и наоборот, потому что совершенно разные подходы к программированию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.06.2012, 18:45
Помогаю со студенческими работами здесь

Физический движок
Я хочу создать игру о танках в 2D, где важна физика полёта снаряда, прошу помощи в реализации этой идеи. Для тех, кому непонятна мысль,...

Физический 3D движок
Я щас изучаю 3d движок Papervision3D, хочю сделать простые гонки, но в этом движке нет физики. Я слышал что есть какойто физический...

Разработать физический движок
Доброго времени суток, форумчане! Столкнулся с проблемой, возможно, не свойственной Java. Есть задание (показано в картинке)....

Анимация и физический движок
Здравствуйте Хотя к OpenGL это не имеет никакого отношения, но думается именно здесь большинство людей которым это будет интересно. ...

Простейший физический движок
Добрый всем день! Сразу к сути! Есть нарисованный человечек управляемый с помощью стрелок клавиатуры. На него действует нечто вроде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru