Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.69
leoned
30 / 30 / 1
Регистрация: 30.06.2011
Сообщений: 467
#1

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

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

Драсти

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

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


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

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

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

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

Движок 3D
Подскажите пожалуйста где можно написать игры так сказать с визуальным...

3d движок
Приветствую всех. Есть следующая идея: Создать свой 3d движок да базе...

Игровой движок
Всем привет. Есть команда, есть знания C++, есть идея игры, нет познания...

Игровой движок!
Подскажите пожалуйста с чего начать писать движок? И еще несколько книг которые...

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

вопрос про WinAPI и консоль не имеет смысла. использоваться они будут только для тестирования и демонстрации работы твоего движка, а эти вещи должны быть отделены от основной части проекта. если тебе нужна особая наглядность, то, конечно, winapi (вплоть до ogl и dx). если важна информативность и простота, то консоль.
0
leoned
30 / 30 / 1
Регистрация: 30.06.2011
Сообщений: 467
02.08.2011, 11:22  [ТС] #3
Сегодня нашел и скачал исходники движков quake2\3 но они на Си а мне желательно на Си++.
Не подскажете какой-нибудь полностью бесплатный движок си++?
0
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
02.08.2011, 11:40 #4
leoned, а что вам мешает разобраться в движке написаном на Си?
0
leoned
30 / 30 / 1
Регистрация: 30.06.2011
Сообщений: 467
02.08.2011, 12:17  [ТС] #5
Цитата Сообщение от Maxwe11 Посмотреть сообщение
написаном на Си
полное не знание си(
0
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
02.08.2011, 12:18 #6
Цитата Сообщение от leoned Посмотреть сообщение
полное не знание си(
Си является подмножеством С++, тогда о каком знании С++ может идти речь
0
leoned
30 / 30 / 1
Регистрация: 30.06.2011
Сообщений: 467
02.08.2011, 12:20  [ТС] #7
Цитата Сообщение от Maxwe11 Посмотреть сообщение
каком знании С++ может идти речь
минимальном только не давно функции изучил
0
LosAngeles
Заблокирован
02.08.2011, 12:35 #8
Цитата Сообщение от Maxwe11 Посмотреть сообщение
Си является подмножеством С++
http://ru.wikipedia.org/wiki/Objective_C является надмножеством над С, С++ - нет
0
Paporotnik
383 / 227 / 12
Регистрация: 06.07.2011
Сообщений: 512
02.08.2011, 12:52 #9
может тогда стоит замахнуться на что-то попроще? примеру, переделать все упражнения из учебника по с и с++
1
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
02.08.2011, 16:03 #10
Цитата Сообщение от LosAngeles Посмотреть сообщение
http://ru.wikipedia.org/wiki/Objective_C является надмножеством над С, С++ - нет
И при этом Си является подмножеством С++.
1
xAtom
917 / 742 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
02.08.2011, 17:26 #11
Есть замечательный движок 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 #12
Цитата Сообщение от Deviaphan Посмотреть сообщение
Сообщение от LosAngeles
http://ru.wikipedia.org/wiki/Objective_C является надмножеством над С, С++ - нет
И при этом Си является подмножеством С++.
Так нет же!
Это просто два очень похожих языка. Си эволюционировал в Си++. Подмножество, это когда любой элемент из А содержится в А'. В этом случае А есть надмножество A', а A' - подмножество А. Одно понятие определяет другое.
C++
1
print("%s", (sizeof('a') == sizeof(char) ? "C++" : "C")
То есть есть различия между Си и Си++.
З.Ы. Я "спасибо" не хотел говорить. Просто промахнулся =(
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
05.06.2012, 17:39 #13
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Подмножество, это когда любой элемент из А содержится в А'.
И? Ты же подтверждаешь мой скопипастенный(у автора языка...) тезис. Любой код на языке Си компилируется на С++ компиляторе. Никто не утверждает, что бинарный код будет одинаковый, но функционально программа при этом будет эквивалентная.

Конкретно по твоему примеру. Это задокоментированная особенность реализации. В Си, символьные константы на самом деле имеют тип int. И даже в те далёкие времена, делать код, зависящий от такой особенности мог только криворукий программист. Поэтому где следовало, стояло приведение типа.
0
diagon
Higher
1937 / 1203 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.06.2012, 18:01 #14
Цитата Сообщение от Deviaphan Посмотреть сообщение
Любой код на языке Си компилируется на С++ компиляторе
Далеко не любой.
Есть несколько десятков особенностей С, которые не скомпилируются в с++.
1
AnyOne697
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
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 Посмотреть сообщение
Подмножество, это когда любой элемент из А содержится в А'.
Я здесь ошибочку допустил. А следует поменять местами с А'.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
05.06.2012, 18:19 #16
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Попробуйте откомпилировать компилятором, полностью соответствующего документации
У меня нет на 100% соответствующего стандарту, поэтому использовал MSVC2010. В этом коде не увидел элементов, которые описаны в исключениях для студии, так что используемые структуры стандарту соответствуют.

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

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

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

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

Не по теме:

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



Добавлено через 3 минуты
Хотя я вообще не понимаю темы данного оффтопа. Лично я считаю Си и С++ совершенно разными языками и сходий синтаксис считаю приятным совпадением. Не более того.
И поэтому считаю, что очень хороший Си программист будет пустышкой в кодинге на С++ и наоборот, потому что совершенно разные подходы к программированию.
0
05.06.2012, 18:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2012, 18:45
Привет! Вот еще темы с решениями:

Игровой движок
Какой движок бесплатный для комерческого использования лутше!Сейчас я...

речевой движок!
доброе время суток форум, хочу узнать ваше мнение.. что нужно знать для того...

голосовой движок
христос воскрес! форумчане, не подскажете где мона посмотреть код голосового...

Игровой движок
Какие версий С++ можно использовать для написания своего движка? Просто хочу...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru