собсно сабж... но проблема такая, при повороте текст (его вывожу как рисунок) очень искажается, например при угле Pi/4 терпимо, а при Pi/6 ужасно, при Pi/2 вообще отлично, ничего не искажается.. я думаю что весь парафин в формуле вычисления.....
ну код для наглядности
Код:
// код можно прицепить на батон :)
CClientDC dc(this); // контекст для рисования
double pi=3.14; // ну это понятно
CSize size; // размер выводимого текста в пикселях
int loop,loop1,x0,y0,x,y; // цп, и координаты центра поворота и новые
x0=50,y0=100; // центр
double ang; ang=pi/6; // угол поворота
COLORREF c; // цвет пикселя
size=dc.GetTextExtent("TEST"); // беру размеры текста
dc.TextOut(x0,y0,"TEST");y0+=size.cy; //вывожу в контекcт
for (loop=x0;loop<x0+size.cx;loop++) // поехали
{
// изображение прохожу снизу вверх... т.е от центра поворота
for (loop1=y0;loop1>y0-size.cy;loop1--)
{
c=dc.GetPixel(loop,loop1); // получаю цвет пикселя
x = (int)(x0+(loop-x0)*cos(ang)+(loop1-y0)*sin(ang)); // вычисляю новые координаты
y = (int)(y0-(loop-x0)*sin(ang)+(loop1-y0)*cos(ang)); // тоже самое
dc.SetPixel(x+100,y+100,c); // вывожу пиксель с новыми координатами смещенные на 100,100
}
}
ну или может есть какие другие формулы поворота точки?!
хм.. если мои формулы не правильны, почему твои вообще не работают?..
мои формулы поворачивают.. но с искажением....
как мне добится что бы текст поворачивался более красиво?
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах