Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.69
leoned
 Аватар для leoned
29 / 29 / 1
Регистрация: 30.06.2011
Сообщений: 467
01.08.2011, 19:05     Физический движок #1
Драсти

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

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


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

P.S.Это мой первый более-мение серьезный проект,так что не судите строго если я где сморжу глупость(или уже сморозил)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.08.2011, 19:05     Физический движок
Посмотрите здесь:

C++ 3d движок
C++ речевой движок!
голосовой движок C++
Физический смысл паттернов C++
C++ Игровой движок!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
01.08.2011, 19:09     Физический движок #2
повикипедируй - там есть ссылки на свободно распространяемые движки и опенсорс. повникай. обычно, действительно "серьезные" проекты строятся не с нуля, а отталкиваясь от чего-то готового, либо уже разрабатывавшегося. конечно, придумать можно много способов реализации всего этого, только зачем, если можно пройти протоптанной дорогой.

вопрос про WinAPI и консоль не имеет смысла. использоваться они будут только для тестирования и демонстрации работы твоего движка, а эти вещи должны быть отделены от основной части проекта. если тебе нужна особая наглядность, то, конечно, winapi (вплоть до ogl и dx). если важна информативность и простота, то консоль.
leoned
 Аватар для leoned
29 / 29 / 1
Регистрация: 30.06.2011
Сообщений: 467
02.08.2011, 11:22  [ТС]     Физический движок #3
Сегодня нашел и скачал исходники движков quake2\3 но они на Си а мне желательно на Си++.
Не подскажете какой-нибудь полностью бесплатный движок си++?
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
02.08.2011, 11:40     Физический движок #4
leoned, а что вам мешает разобраться в движке написаном на Си?
leoned
 Аватар для leoned
29 / 29 / 1
Регистрация: 30.06.2011
Сообщений: 467
02.08.2011, 12:17  [ТС]     Физический движок #5
Цитата Сообщение от Maxwe11 Посмотреть сообщение
написаном на Си
полное не знание си(
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
02.08.2011, 12:18     Физический движок #6
Цитата Сообщение от leoned Посмотреть сообщение
полное не знание си(
Си является подмножеством С++, тогда о каком знании С++ может идти речь
leoned
 Аватар для leoned
29 / 29 / 1
Регистрация: 30.06.2011
Сообщений: 467
02.08.2011, 12:20  [ТС]     Физический движок #7
Цитата Сообщение от Maxwe11 Посмотреть сообщение
каком знании С++ может идти речь
минимальном только не давно функции изучил
LosAngeles
Заблокирован
02.08.2011, 12:35     Физический движок #8
Цитата Сообщение от Maxwe11 Посмотреть сообщение
Си является подмножеством С++
http://ru.wikipedia.org/wiki/Objective_C является надмножеством над С, С++ - нет
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
02.08.2011, 12:52     Физический движок #9
может тогда стоит замахнуться на что-то попроще? примеру, переделать все упражнения из учебника по с и с++
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.08.2011, 16:03     Физический движок #10
Цитата Сообщение от LosAngeles Посмотреть сообщение
http://ru.wikipedia.org/wiki/Objective_C является надмножеством над С, С++ - нет
И при этом Си является подмножеством С++.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
02.08.2011, 17:26     Физический движок #11
Есть замечательный движок PhysX от NVIDIA я думаю лучше его нет, самому написать типа такого не под силу даже разработчику с многолетним стажем. Под словом физический движок скрывается очень сложное выполнение исходного кода, сюда входит такое как морфирующия анимация, скелетная анимация, кукольная анимация, исполнения ветра на действие окружающей среды на одежду, листья деревьев, бурление воды, объёмные падающие тени, столкновения различных масс. Если ты собираешься писать его для игр и трёхмерных сцен, то надо юзать DirectX или OpenGL я в свои времена использовал движок RenderWare. Вообще я рекомендовал посетить такие ресурсы где разработчики занимаются этим делом www.gamedev.ru ещё лучше англо-язычный www.gamedev.net, для начала скачай книгу Джима Адамса "Поодвинутая анимация", если её осилешь тогда дальше легче будет.
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
05.06.2012, 17:24     Физический движок #12
Цитата Сообщение от Deviaphan Посмотреть сообщение
Сообщение от LosAngeles
http://ru.wikipedia.org/wiki/Objective_C является надмножеством над С, С++ - нет
И при этом Си является подмножеством С++.
Так нет же!
Это просто два очень похожих языка. Си эволюционировал в Си++. Подмножество, это когда любой элемент из А содержится в А'. В этом случае А есть надмножество A', а A' - подмножество А. Одно понятие определяет другое.
C++
1
print("%s", (sizeof('a') == sizeof(char) ? "C++" : "C")
То есть есть различия между Си и Си++.
З.Ы. Я "спасибо" не хотел говорить. Просто промахнулся =(
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.06.2012, 17:39     Физический движок #13
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Подмножество, это когда любой элемент из А содержится в А'.
И? Ты же подтверждаешь мой скопипастенный(у автора языка...) тезис. Любой код на языке Си компилируется на С++ компиляторе. Никто не утверждает, что бинарный код будет одинаковый, но функционально программа при этом будет эквивалентная.

Конкретно по твоему примеру. Это задокоментированная особенность реализации. В Си, символьные константы на самом деле имеют тип int. И даже в те далёкие времена, делать код, зависящий от такой особенности мог только криворукий программист. Поэтому где следовало, стояло приведение типа.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.06.2012, 18:01     Физический движок #14
Цитата Сообщение от Deviaphan Посмотреть сообщение
Любой код на языке Си компилируется на С++ компиляторе
Далеко не любой.
Есть несколько десятков особенностей С, которые не скомпилируются в с++.
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
05.06.2012, 18:04     Физический движок #15
Цитата Сообщение от 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 Посмотреть сообщение
Подмножество, это когда любой элемент из А содержится в А'.
Я здесь ошибочку допустил. А следует поменять местами с А'.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.06.2012, 18:19     Физический движок #16
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Попробуйте откомпилировать компилятором, полностью соответствующего документации
У меня нет на 100% соответствующего стандарту, поэтому использовал MSVC2010. В этом коде не увидел элементов, которые описаны в исключениях для студии, так что используемые структуры стандарту соответствуют.

Физический движок
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.06.2012, 18:30     Физический движок #17
Даже не так
Физический движок

Т.е., если вы пишите говнокод и он оказывается не совместим, то это как бы ваши проблемы...
И выдумщику языка С++ я как-то больше верб на слово. Если Бьярн говорит, что Си это подмножество С++, то так оно и есть.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.06.2012, 18:31     Физический движок #18
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Смешно видеть это от "Эксперта Си++".
Так нигде и не написано, что эксперт Си. Си я вообще не знаю, если что.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.06.2012, 18:35     Физический движок #19
Цитата Сообщение от Deviaphan Посмотреть сообщение
У меня нет на 100% соответствующего стандарту, поэтому использовал MSVC2010. В этом коде не увидел элементов, которые описаны в исключениях для студии, так что используемые структуры стандарту соответствуют.
Рекурсивный вызов мейна запрещен в с++.

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

Цитата Сообщение от Deviaphan Посмотреть сообщение
Т.е., если вы пишите говнокод и он оказывается не совместим, то это как бы ваши проблемы...
Когда с++ только разрабатывался, люди писали на С и не задумывались о совместимости с еще не придуманным языком. Поэтому далеко не каждый старый код можно портировать на с++.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2012, 18:45     Физический движок
Еще ссылки по теме:

Модель преобразования виртуального адреса в физический адрес C++
Движок для платформеров C++
C++ Игровой движок

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

Или воспользуйтесь поиском по форуму:
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.06.2012, 18:45     Физический движок #20
Цитата Сообщение от diagon Посмотреть сообщение
Он говорил, что с++ разрабатывался, как надмножество. А это совсем другое.
Чуть выше я привёл скриншот цитаты того, что он говорил. А он говорил, что за исключением говнокода, Си является подмножеством С++.

Не по теме:

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



Добавлено через 3 минуты
Хотя я вообще не понимаю темы данного оффтопа. Лично я считаю Си и С++ совершенно разными языками и сходий синтаксис считаю приятным совпадением. Не более того.
И поэтому считаю, что очень хороший Си программист будет пустышкой в кодинге на С++ и наоборот, потому что совершенно разные подходы к программированию.
Yandex
Объявления
05.06.2012, 18:45     Физический движок
Ответ Создать тему
Опции темы

Текущее время: 14:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru