На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> atan2 , исключение
    когда в программе происходит atan2(0, 0) то выскакивает сообщение в Виндоусе о том что случилось страшное.
    try/cath пробовал
      может ты в catch, не то написал ?

      try{
      atan2( 0, 0 );
      } catch( ... ){
      //
      }

      должно работать, если глюк только во время разработки, то надо галку убрать StopOnDelphi и C++ Exception
        2rodion - тебе не кажется что при вычислении atan2 от таких параметров происходит деление на ноль? rolleyes.gif
          QUOTE
          double atan2(double y, double x);
          Description

          Calculates the arc tangent of y/x.
          If both x and y are set to 0, the function sets the global variable errno to EDOM, indicating a domain error.


          Borland C++ 5.0 Programmer's Guide
            Ну и что что деление на ноль. Должен же я получить исключение и затем его обработать?
            try
            {
            atan2( 0, 0 );
            }
            catch( ... )
            {
            //
            }
            не работает (иначе бы я и не писал бы)
            Но может кто нибудь скажет проверь типаif (0==0) и не парься?
            Так ведь исключение возникает и призначениях больших х/у...
            короче говоря хочу убидь двух зайцев
              Чегой-то я не догоняю, читая MSDN:

              If both parameters of atan2 are 0, the function returns 0.

              Так я и сделал: float a = atan2(0,0);

              Не обманули - получил я ноль без всяких проблем. У тебя, наверное, Windows 3.0 - поэтому и
              "выскакивает сообщение в Виндоусе о том что случилось страшное".
                Юзай __try/__except (то бишь SEH), для того, чтобы не падала прога.
                Visual only...
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0267 ]   [ 17 queries used ]   [ Generated: 25.04.24, 13:31 GMT ]