C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
sin и cos из <math.h> в Builder 6, Неправильно считает
k@s
  Отправлено: 25.02.2005, 16:54


Не зарегистрирован







Есть на форме объект, он имеет угол поворота. Как мне сдвинуть этот объект
в сторону поворота? Проблема в том, что sin и cos считаются неправильно( самим Билдером 6! ).
Вот формулы:
CODE

TPoint Coords;
Coords.y -= speed*sin( angle*M_PI/180.0f );
Coords.x += speed*cos(angle*M_PI/180.0f );

Подскажите, пожалуйса, что мне делать?
Bond
Отправлено: 25.02.2005, 17:37


Станционный диспетчер

Группа: Участник
Сообщений: 142



попробуй вставить вот это
CODE
       char aaa[256]; double speed = 50;
       int angle = TrackBar1->Position;
       Label1->Caption = IntToStr(angle) + " градусов";
       double tmpAngle = angle*M_PI/180.0f;
       sprintf( aaa, "%6.3f", tmpAngle );
       Label2->Caption = AnsiString(aaa) + " радиан";
       Shape1->Left = (Width / 2) + speed * cos( tmpAngle );
       Shape1->Top = (Height / 2) — speed * sin( tmpAngle );
Bond
Отправлено: 25.02.2005, 17:40


Станционный диспетчер

Группа: Участник
Сообщений: 142



тут TrackBar1->Position изменяется от 0 до 360
Shape1 бегает по кругу, центр которого в середине формы, а радиус 50
Guest
Отправлено: 26.02.2005, 09:42


Не зарегистрирован







Кстати, что касается самих функций sin() и сos() — имеют тип double,
и для повышения точности я обычно пользуюсь
функциями sinl() и cosl() — long double

Вернуться в Вопросы программирования в C++Builder