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

Сравнение float. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.82
Саймон
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 8
16.04.2012, 20:38     Сравнение float. #1
Доброго времени суток!

Помогите пожалуйста сформулировать условие.

Есть определенный объект, который следит за передвижением мыши, делаю всё следующим образом:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 float Rad = (float)-atan2(mouse_x-_x, mouse_y-_y); // получаю угол от объекта до мыши
  
  //осуществляю поворот объекта:
  if( Rad != 0.0f){
    
    if(_Radius > Rad)
    {
      _Radius -= 2.0f *dt;
    }
    
    if(_Radius < Rad)
    {
      _Radius += 2.0f *dt;
    }
  }
Мне нужно как-то узнать, что поворот был совершен, как это можно сделать?
Пытался сравнить _Radius и Rad, следующим образом:

C++
1
if( ( (Rad / 2*M_PI) + 1.0f - (_Radius / 2*M_PI) + 1.0f) < 0.00001f )
Но видимо, делаю, что-то не так.
Помогите пожалуйста.

Добавлено через 1 час 21 минуту
Никто не поможет?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2012, 20:38     Сравнение float.
Посмотрите здесь:

C++ Ошибка cannot convert 'float' to 'float*'
C++ float *m=new float[n]
Float C++
invalid types `float[float]' for array subscript C++
опять ошибка.на этот раз cannot convert `float (*)(float)' to `float' in argument passing C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
16.04.2012, 21:20     Сравнение float. #2
Цитата Сообщение от Саймон Посмотреть сообщение
Мне нужно как-то узнать, что поворот был совершен
Как вариант:
1) после выполнения поворота логическому флагу присвоить значение истина.
2) при проверке на поворот проверять флаг. Если истина - был поворот. После проверки выставить ложь.
Саймон
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 8
16.04.2012, 21:43  [ТС]     Сравнение float. #3
Спасибо, конечно. Но мне как раз нужно узнать, когда выставлять флаг А узнать никак не могу, потому что _Radius и Rad - никак не получается сравнить на равенство.
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
16.04.2012, 21:58     Сравнение float. #4
После того, как осуществили поворот.
Саймон
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 8
16.04.2012, 22:09  [ТС]     Сравнение float. #5
Цитата Сообщение от HighPredator Посмотреть сообщение
После того, как осуществили поворот.
Как узнать, что поворот осуществлен?
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
16.04.2012, 22:14     Сравнение float. #6
Цитата Сообщение от Саймон Посмотреть сообщение
Как узнать, что поворот осуществлен?
У вас есть что-то, что вращается. Вращение, раз оно есть, так или иначе описано. Вот там, где описано и смотрите.
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
17.04.2012, 09:19     Сравнение float. #7
Цитата Сообщение от Саймон Посмотреть сообщение
if( Rad != 0.0f)
А вот это условие никогда не будет истинно Или Вы как раз об этом?
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
17.04.2012, 09:25     Сравнение float. #8
Цитата Сообщение от fasked Посмотреть сообщение
А вот это условие никогда не будет истинно. Или Вы как раз об этом?
Почему же? По-моему оно как раз почти всегда будет истинно.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
17.04.2012, 09:41     Сравнение float. #9
Цитата Сообщение от lazybiz Посмотреть сообщение
Почему же? По-моему оно как раз почти всегда будет истинно.
Чистый ноль в float сложно получить.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
17.04.2012, 09:43     Сравнение float. #10
Цитата Сообщение от Nekto Посмотреть сообщение
Чистый ноль в float сложно получить.
В том то и дело. Вникни в условие! Там стоит != !!
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
17.04.2012, 09:50     Сравнение float. #11
Цитата Сообщение от lazybiz Посмотреть сообщение
В том то и дело. Вникни в условие! Там стоит != !!
Так указывают на то, что смысла в этом if в таком виде нету.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
17.04.2012, 09:54     Сравнение float. #12
Указывают на то, что "условие никогда не будет истинно".

Чистый ноль в float сложно получить.
Этим тоже указывают на то в if нету смысла?
Ошибся - признай, что уж упираться.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2012, 10:24     Сравнение float.
Еще ссылки по теме:

cannot convert `float' to `float*. Почему так происходит? C++
C++ Сравнение float
C++ Чем отличаются float преобразования (float)var от float(var)

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

Или воспользуйтесь поиском по форуму:
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
17.04.2012, 10:24     Сравнение float. #13
Цитата Сообщение от lazybiz Посмотреть сообщение
В том то и дело. Вникни в условие! Там стоит != !!
Тут я проглядел - мой косяк
Ну значит оно всегда будет истинно. В любом случае логика программы нарушена и соответственно программа работает не так как ожидает автор.
Такое условие бесполезно. Его можно убрать вообще.
Yandex
Объявления
17.04.2012, 10:24     Сравнение float.
Ответ Создать тему
Опции темы

Текущее время: 00:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru