Amigo, desculpem incomodar, Será que alguem poderia dar uma ajudinha com uma função pra rotacionar uma imagem utilizando o canvas?
Eh pra um trabalho da facul e tah meio em cima da hora, sabe neh. O vetor OBJ contém todos os pontos da figura, segundo a teoria eu devo trazer todos os pontos para uma posição comum, aplicar os calculos de rotação e voltar todos os pontos para a posicao anterior. Segundo a teoria que tenho seria isso: Rotação de θ graus sobre o ponto (X,Y) 1. Translação (X,Y) até Origem 2. Rotacionar θ graus 3. Translação Origem até (-X,-Y) T(x,y) * R(θ) * T(-x,-y) Ai tenho como se faz a transalação: xNOVO = xANTIGO + Dx yNOVO = yANTIGO + Dy E como se faz a rotação: xNOVO = xANTIGO * cos(θ) + yANTIGO * sin(θ) yNOVO = xANTIGO * sin(θ) + yANTIGO * cos(θ) Agora segue a forma que estou tentando fazer isso: for i := 0 to Length(OBJ)-1 do begin OBJ[i].X := OBJ[i].X+StrToInt(edXt.Text); OBJ[i].Y := OBJ[i].Y+StrToInt(edYt.Text); end; for i := 0 to Length(OBJ)-1 do begin OBJ[i].X := Round(OBJ[i].X*Cos(0))+(OBJ[i].Y*Sin(0)); OBJ[i].Y := Round(OBJ[i].X*Sin(0))+(OBJ[i].Y*Cos(0)); end; for i := 0 to Length(OBJ)-1 do begin OBJ[i].X := OBJ[i].X+(StrToInt(edXt.Text)*-1); OBJ[i].Y := OBJ[i].Y+(StrToInt(edYt.Text)*-1); end; Desenha. [ ]'s Rodrigo -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html