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

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

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

Студворк — интернет-сервис помощи студентам
Планирую делать софт, в котором можно будет проектировать как мелкие детали механизмов, всякие винтики, болтики и пр, то есть где размеры в миллиметрах и их сотых частях, но в тоже время в этом же софте нужно будет проектировать и целые здания (сборки) и даже длинные трубопроводы, протяжённостью в километры. Всё это должно быть как бы на одном графическом ядре, то есть в одном и том же редакторе могут быть и винтики и трубопроводы. Для винтиков подошёл бы и float, но если в том же float-t обозначать киллометры в миллиметрах - будет косяк overflow. Неужели придётся длинную арифметику заюзать? А как тогда всё это дело рисовать, ведь во всяких OpenGL и DirectX все переменные во float-ах...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.08.2016, 11:40
Ответы с готовыми решениями:

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

Какие из команд используют переменные окружения?
Помогите, пожалуйста для команд, использующих переменные окружения, пояснить назначение этих переменных и указать причины изменения из...

Какие функции используют MSSTDFMT.DLL?
Не могу вспомнить откуда в моем проекте в референсесах нарисовалась эта библиотека. Если ее отрубить то проект запускается и даже работает,...

5
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
31.08.2016, 11:56
Цитата Сообщение от HELL-FIRE Посмотреть сообщение
Для винтиков подошёл бы и float, но если в том же float-t обозначать киллометры в миллиметрах - будет косяк overflow.
Ты ничего не путаешь? Максимальное значение для типа float примерно 3.4E+38. Даже если километры выразить в микронах, то overflow все равно не произойдет. ( Ну, может, для расстояний космических масштабов..... но на этот случай у нас есть тип double. )
0
Заблокирован
31.08.2016, 12:26  [ТС]
Цитата Сообщение от 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;
и посмотри в дебаггере что получится...
0
103 / 69 / 19
Регистрация: 07.07.2014
Сообщений: 240
31.08.2016, 13:13
340282327376181848531187106054144.000000 вот столько километров выраженных в милиметрах поместится в float.
Проверьте:
C++
1
2
3
4
#include <limits>
//////////////
    std::cout << std::fixed;
    cout << std::numeric_limits<float>::max() << endl;
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
31.08.2016, 13:44
Цитата Сообщение от HELL-FIRE Посмотреть сообщение
и посмотри в дебаггере что получится...
Да в дебаггере-то получится все нормально, не беспокойся Но по-моему ты путаешь диапазон значений и точность представления числа float.

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

Цитата Сообщение от CheshireCat Посмотреть сообщение
Если я проектирую трубопровод длиной пару тыщ километров, меня категорически не интересует расхождение концов этого трубопровода на пару миллиметров.
Ну... это может не интересовать производство, а в софте должно быть всё чётко.
Самое хреновое, что эту сцену нужно ещё и рендерить, в общем придётся делать длинную арифметику и подгружаться сцену блоками
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.08.2016, 14:10
Помогаю со студенческими работами здесь

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

Какие языки программирования используют для создания программ?
Какими языками ползают для создании программ в основном?

Как определить, какие методы используют тот или иной интерфейс?
Здравствуйте. Подскажите пожалуйста, как определить какие методы используют тот или иной интерфейс? Например интерфейсы IEnumerable или...

Переменные, какие заданы правильно а какие неправильно?
Скажите можно или нельзя так задавать? а самое главное почему? char a='A', b='B'; int x=5, y=3; double m=5, n=2; a*b x/y m%n

Существуют ли какие-то инженерные задачи, которые используют только диагонально преобладающие матрицы
Скажите, пожалуйста, существуют ли какие-то инженерные задачи, которые используют только диагонально преобладающие матрицы? Ведь есть...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru