Onde está a diferença entre um "transformar" e "transformar afim" um?

votos
5

Há uma função como:

CATransform3DGetAffineTransform

Retorna a afim transformação representada por 't'. Se 't' não pode ser exatamente representado como uma transformação afim o valor retornado é indefinido.

Eu não estou tão math-orientado, portanto, um fácil de entender seria muito bom. Wikipedia não era grande ajuda aqui.

Publicado 19/05/2009 em 13:56
fonte usuário
Em outras línguas...                            


3 respostas

votos
6

transformações afins são transformações que não "excessivamente distorcem" a geometria no sentido de que:

  • pontos que estavam em uma linha antes ainda estão em uma linha após a transformação
  • as distâncias relativas entre pontos de permanecer o mesmo (assim um quadrado pode não ser mais quadrado, mas ainda tem igual comprimento lado)

Então, rotação e escala são afim - projeção, por exemplo, não é.

Respondeu 19/05/2009 em 16:23
fonte usuário

votos
1

transformações afins são transformações, mas transformações não precisam ser Affine. Por exemplo, um corte do plano não é Afim porque ele não envia linhas de linhas.

Transformações afins são, por definição, essas transformações que preservam proporções de distâncias e enviar linhas para linhas (preservando "colinearidade"). Na geometria euclidiano de dimensão finita, estes actuam por uma transformação linear seguida por uma ou seja, tradução x -> Ax + bonde xé um vector, Aé uma transformação linear e bé um vector.

transformações afins são grandes para mudar sistemas de coordenadas, talvez a partir de um que é bastante difícil de visualizar volta para as habituais coordenadas.

As transformações afins é provável que você se deparar na prática são traduções, dilatação (ou seja, dimensionamento), rotação e reflexão. Se você está desenvolvendo para iOS, dizer, veja as CGAffineTransformseções da documentação do desenvolvedor. Estes irá explicar como criar transformações afins usando vários métodos de conveniência, e como aplicá-los a instâncias UIView com a -setTransformmensagem.

Última, um ponto importante sobre transformações afins é que eles são não comutativa sob composição: Aplicando transformação T1seguido de transformar T2é, em geral, diferente do que aplica T2seguido por T1. Ou seja, a ordem em que você aplicar estas questões.

Respondeu 03/05/2011 em 07:18
fonte usuário

votos
0

CoreAnimation usa 3D transforma. transformações afins são um subconjunto 2D dessas transformações 3D. Eles permitem apenas tradução, rotação e dimensionamento em X, Y plano.

Respondeu 19/05/2009 em 13:59
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more