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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
HELL-FIRE
Заблокирован
#1

Какие переменные используют при проектирование огромных объектов? - C++

31.08.2016, 11:40. Просмотров 174. Ответов 5
Метки нет (Все метки)

Планирую делать софт, в котором можно будет проектировать как мелкие детали механизмов, всякие винтики, болтики и пр, то есть где размеры в миллиметрах и их сотых частях, но в тоже время в этом же софте нужно будет проектировать и целые здания (сборки) и даже длинные трубопроводы, протяжённостью в километры. Всё это должно быть как бы на одном графическом ядре, то есть в одном и том же редакторе могут быть и винтики и трубопроводы. Для винтиков подошёл бы и float, но если в том же float-t обозначать киллометры в миллиметрах - будет косяк overflow. Неужели придётся длинную арифметику заюзать? А как тогда всё это дело рисовать, ведь во всяких OpenGL и DirectX все переменные во float-ах...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2016, 11:40     Какие переменные используют при проектирование огромных объектов?
Посмотрите здесь:

Какие есть способы задания огромных массивов - более 2Gb? - C++
Что делать, если требуется массив значительно превышающий максимально допустимую длину в MVS (2Gb)? Значительно превышающий = на порядок...

Хранение матрицы при решении огромных СЛАУ - C++
Компьютер может решать СЛАУ с матрицей в миллион строк. Для хранения такой матрицы в оперативной памяти среднестатистического компьютера...

Определить какие переменные удовлетворяют заданному отношению - C++
Не могу разобраться второй месяц, вот задание: Даны переменные А.B,С. Определить какие из переменных являются координатами точки на...

Какие из указанных объектов полиморфны? - C++
Проверьте правильно ли я указал полиморфные объекты?

По приведенному коду определить, какие значения принимают переменные - C++
Какие значения принимают переменные а, b * р и n * после выполнения указателя в (08), (10), (13) и (14) ? (01) int a = 2; (02) int...

Переменные передаваемые при вызове функции - C++
Не умею передавать значения переменных при вызове функции, кто бы смог подсказать как передать значения "float v" и "countY" в выражениях...

Переменные передаваемые при вызове функции - C++
Не умею передавать значения переменных при вызове функции, кто бы смог подсказать как передать значения "float v" и "countY" в выражениях...

Переменные при использовании шаблонов. Оператор return - C++
Доброго времени суток. В домашнем задании на первом семестре обучения поставлена задача: написать перегруженные шаблоны функций для...

Как используют макросы? - C++
Здраствуйте, в моем блоге форумчанин с ником Evg посоветовал использовать макрос для вот такой конструкции: i f ( k e y s & ( 0 x 1...

Подскажите, почему не видит переменные a и b? При использовании конструктора - C++
#include <iostream> #include <math.h> #include <locale> using namespace std; class mas { private: double a,b,c,c1; ...

Для чего используют typedef? - C++
Здравствуйте программисты! Набрёл на тему,там используется какой-то typedef, подскажите пожалуйста,что это такое,как с ним работать. И...

Для чего используют -1 в программировании - C++
Здравствуйте форумчане, при просмотре примера из книги наткнулся на кусок кода: if (j != -1) { ... } Что означает -1?


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,354
31.08.2016, 11:56     Какие переменные используют при проектирование огромных объектов? #2
Цитата Сообщение от HELL-FIRE Посмотреть сообщение
Для винтиков подошёл бы и float, но если в том же float-t обозначать киллометры в миллиметрах - будет косяк overflow.
Ты ничего не путаешь? Максимальное значение для типа float примерно 3.4E+38. Даже если километры выразить в микронах, то overflow все равно не произойдет. ( Ну, может, для расстояний космических масштабов..... но на этот случай у нас есть тип double. )
HELL-FIRE
Заблокирован
31.08.2016, 12:26  [ТС]     Какие переменные используют при проектирование огромных объектов? #3
Цитата Сообщение от CheshireCat Посмотреть сообщение
Максимальное значение для типа float примерно 3.4E+38.
У float-а разрядность в символов 8, не больше
Напиши
C++
1
2
3
4
5
float a = 100000000.000;
    a += 1.0;
    a += 100000000.0;
    a += 0.001;
    a += 0.100;
и посмотри в дебаггере что получится...
DarkVortex
102 / 68 / 18
Регистрация: 07.07.2014
Сообщений: 239
31.08.2016, 13:13     Какие переменные используют при проектирование огромных объектов? #4
340282327376181848531187106054144.000000 вот столько километров выраженных в милиметрах поместится в float.
Проверьте:
C++
1
2
3
4
#include <limits>
//////////////
    std::cout << std::fixed;
    cout << std::numeric_limits<float>::max() << endl;
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,354
31.08.2016, 13:44     Какие переменные используют при проектирование огромных объектов? #5
Цитата Сообщение от HELL-FIRE Посмотреть сообщение
и посмотри в дебаггере что получится...
Да в дебаггере-то получится все нормально, не беспокойся Но по-моему ты путаешь диапазон значений и точность представления числа float.

Если я проектирую трубопровод длиной пару тыщ километров, меня категорически не интересует расхождение концов этого трубопровода на пару миллиметров. Во-первых, сварщик все равно заварит стыки герметично (внезапно, да!), и во-вторых, ни один трубопрокатный завод не поставит тебе пару тыщ километров труб с миллиметровым допуском.
HELL-FIRE
Заблокирован
31.08.2016, 14:10  [ТС]     Какие переменные используют при проектирование огромных объектов? #6
Цитата Сообщение от DarkVortex Посмотреть сообщение
вот столько километров выраженных в милиметрах поместится в float.
Ну ты чего, у флота разрядность 7 цифр )))
Цитата Сообщение от CheshireCat Посмотреть сообщение
Да в дебаггере-то получится все нормально, не беспокойся
не нормально, сам проверь
Цитата Сообщение от CheshireCat Посмотреть сообщение
Но по-моему ты путаешь диапазон значений и точность представления числа float.
Я не путаю, я ж говорю, что разрядность float-а 7 циферек всего навсего.
Расшифруй эти определения.

Цитата Сообщение от CheshireCat Посмотреть сообщение
Если я проектирую трубопровод длиной пару тыщ километров, меня категорически не интересует расхождение концов этого трубопровода на пару миллиметров.
Ну... это может не интересовать производство, а в софте должно быть всё чётко.
Самое хреновое, что эту сцену нужно ещё и рендерить, в общем придётся делать длинную арифметику и подгружаться сцену блоками
Yandex
Объявления
31.08.2016, 14:10     Какие переменные используют при проектирование огромных объектов?
Ответ Создать тему
Опции темы

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