Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Расчет угла поворота для шрифта


Автор: dadrum 24.8.2008, 10:37
Добрый день!
Задавался ли кто-нибудь вопросом о расчете угла поворота (lfEscapement и lfOrientation) для шрифта по известным двум точкам отрезка?
Задача состоит в том, чтобы отобразить текст вдоль отрезка с точками A(x1,y1) и B(x2,y2). Пытался вычислить
по формуле -(10*180/M_PI)*tan((y2-y1)/(x2-x1)) но угол правильный получается лишь для некоторых ситуаций расположения точек ...
Помогите  алгоритмом

Автор: jonie 24.8.2008, 12:33
две точки задают прямую, угла они задать НЕ могут.
хотя я подозреваю что вы имеете ввиду угол между этой прямой и прямой OX..

одним словом:
http://ipicture.ru/


Автор: dadrum 24.8.2008, 12:48
Да, имелось ввиду - угол от OX

а кто такие L M и N , расшифруйте, если не трудна ...

Автор: Earnest 26.8.2008, 14:39
Не, лучше (проще) через atan2:
double phi = atan2 (y2-y1, x2-x1); phi получится в радианах, от -pi до pi, в градусы уж как-нибудь пересчитаешь. Преимущество в том, что не надо рассматривать особые случаи (прямой угол) и правильно выбирается квадрант.

Автор: dadrum 27.8.2008, 14:06
То, что нужно! Спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)