Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2020, 13:51   #1
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию арифметическое переполнение

Без преобразования M_PI ко float, в скобках возникает ошибка арифметического переполнения.
Почему именно в скобках? Какое там может быть переполнение?
Изображения
Тип файла: jpg 527bf1a3edabaee5a1f1d444906522cd.jpg (48.4 Кб, 2 просмотров)

Последний раз редактировалось BDA; 10.07.2020 в 02:49. Причина: перезалив картинки
BLACK_RAIN вне форума Ответить с цитированием
Старый 10.07.2020, 00:35   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Не могу открыть картинку
Black Fregat вне форума Ответить с цитированием
Старый 10.07.2020, 02:50   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Black Fregat, залил картинку на форум.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.07.2020, 08:15   #4
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 947
По умолчанию

BLACK_RAIN, поле x в camera.rotation.x какой тип имеет?
Алексей1153 вне форума Ответить с цитированием
Старый 15.07.2020, 08:54   #5
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Цитата:
Сообщение от Алексей1153 Посмотреть сообщение
BLACK_RAIN, поле x в camera.rotation.x какой тип имеет?
rotation это glm::vec3
там x,y,z это float, вроде

Последний раз редактировалось BLACK_RAIN; 15.07.2020 в 08:58.
BLACK_RAIN вне форума Ответить с цитированием
Старый 15.07.2020, 09:49   #6
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 947
По умолчанию

BLACK_RAIN, вроде или точно? Насколько я понимаю, класс glm::vec3 - шаблон. Покажи определение переменной
Алексей1153 вне форума Ответить с цитированием
Старый 15.07.2020, 10:05   #7
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Код:
struct CAMERA
{
    glm::vec3 position = glm::vec3(0.0f, 0.0f, 0.0f);
    glm::vec3 rotation = glm::vec3(0.0f, 0.0f, 0.0f);
    glm::vec3 front = glm::vec3(
        cosf(glm::radians(rotation.x - 90.0f)) * cosf(glm::radians(rotation.y)),
        sinf(glm::radians(rotation.y)),
        sinf(glm::radians(rotation.x - 90.0f)) * cosf(glm::radians(rotation.y)));
    glm::vec3 direction = glm::normalize(position - front);
    glm::vec3 upVector = glm::vec3(0.0f, 1.0f, 0.0f);
}camera;

Последний раз редактировалось BLACK_RAIN; 15.07.2020 в 10:15.
BLACK_RAIN вне форума Ответить с цитированием
Старый 15.07.2020, 11:53   #8
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 947
По умолчанию

BLACK_RAIN, у меня нет возможности смотреть исходники твоей библиотеки, поэтому могу только предполагать - что это таки шаблон, и по умолчанию параметр int. Пробуй так

Код:
glm::vec3 position{0.0f, 0.0f, 0.0f};
или так
Код:
glm::vec3<float> position{0.0f, 0.0f, 0.0f};
Алексей1153 вне форума Ответить с цитированием
Старый 15.07.2020, 12:15   #9
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Цитата:
Сообщение от Алексей1153 Посмотреть сообщение
Код:

glm::vec3 position{0.0f, 0.0f, 0.0f};

или так
Код:

glm::vec3<float> position{0.0f, 0.0f, 0.0f};
оно так не объявляется
Цитата:
Сообщение от Алексей1153 Посмотреть сообщение
могу только предполагать - что это таки шаблон, и по умолчанию параметр int.
в исходниках библиотеки написано это:
Код:
	typedef vec<1, float, defaultp>		vec1;
	typedef vec<2, float, defaultp>		vec2;
	typedef vec<3, float, defaultp>		vec3;
	typedef vec<4, float, defaultp>		vec4;
BLACK_RAIN вне форума Ответить с цитированием
Старый 16.07.2020, 14:17   #10
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 947
По умолчанию

BLACK_RAIN, в данном случае в неймспейсе glm определён алиас vec3, в котором тип float уже проставлен. Так что, тогда мне не очень понятно, на что там ругань. Нужно доступ к проекту, либо методом научного тыка сам экспериментально вылавливай причину предупреждения

например, если предупреждение пропадёт, когда сделаешь так
Код:
float(camera.rotation.x)
, значит проблема именно в x

Это не призыв ТАК делать, а только способ локализовать проблему. Исправлять нужно "корень", а не последствия
Алексей1153 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Арифметическое переполнение паскаль Alexmur07 Помощь студентам 8 14.01.2014 12:58
Арифметическое переполнение. xTODx Помощь студентам 5 26.09.2013 10:54
Арифметическое переполнение GamBitFRK Помощь студентам 1 09.05.2012 22:22
Циклы. Арифметическое переполнение. sqr Паскаль, Turbo Pascal, PascalABC.NET 5 09.11.2011 01:18
Арифметическое переполнение hasana Помощь студентам 2 04.11.2010 18:08