Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сравнение переменных 
:(
    Опции темы
ecspertiza
Дата 23.9.2009, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: нет
Всего: 5



У меня такой вопрос в OpenGL переменные сравниваются также как и везде или каким то другим методом???

ибо у меня есть две переменных changeZ и modifiedZ обе GLfloat

в тот момент когда обе переменные равны софт это не обраатывает вот код

Код

        if (changeZ > modifiedZ)
        {
            qDebug() << "changeZ > modifiedZ";
            modifiedZ += 0.1;
        }else if (changeZ < modifiedZ)
        {
            qDebug() << "changeZ < modifiedZ";
            modifiedZ -= 0.1;
        }else
        {
            qDebug() << "changeZ == modifiedZ";
        }


делаю вывод на консоль он мне говорит о том что обе переменные равны допустим 2 но программа обрабатывает 

changeZ > modifiedZ

Это чудеса? или магия? или мне пойти об стену убиться?




--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
ecspertiza
Дата 24.9.2009, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: нет
Всего: 5



Хахаха!!!! Я не псих smile 

вот накидал тестовый пример, переменные не сравниваются, или я чего то не догоняю??? 


Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  testOpenGL.rar 1,48 Kb


--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
ecspertiza
Дата 24.9.2009, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: нет
Всего: 5



Ну а если без тупняков, то вопрос в общем такой есть анимация просто передвижение текстуры,  и передвигается она с помощью наращивания одной из переменной на 0.1 за один тик таймера, ну и естественно возникает такой момент когда её нужно остановить, а это сделать не получается ибо переменные не сравниваются, я думаю те кто пишет на OpenGL почти каждый день такие проблемы решают, может чего подскажите? очень хотелось бы.


--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
Solomon
  Дата 25.9.2009, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 23.1.2006
Где: Украина Киев

Репутация: нет
Всего: 2



тут OpenGl непричем... просто обыкновенная погрешнасть float

Цитата(ecspertiza @  23.9.2009,  14:27 Найти цитируемый пост)
делаю вывод на консоль он мне говорит о том что обе переменные равны допустим 2 но программа обрабатывает 

а ты в дебаге посмотри) там одна может быть 2,00004 а вторая 2,00003... 

замени float на int и все будет smile 



--------------------
Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром...
Соломон 2008
PM MAIL ICQ GTalk YIM   Вверх
Static
Дата 13.10.2009, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 6.11.2008

Репутация: 1
Всего: 2



Цитата(Solomon @  25.9.2009,  13:13 Найти цитируемый пост)
замени float на int и все будет

это, как говорится, зависит... Правильнее все же сравнить с эпсилон
Код

float a;
float b;

if ( fabs( a - b ) > 0.00001 ) //не равны
;
else // равны
;

--------------------
Я не настолько безнадежен, как кажется...
PM MAIL   Вверх
Rickert
Дата 14.10.2009, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52





--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0442 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.