Descrição

A classe Matriz representa uma matriz de transformação que determina como mapear pontos de um espaço de coordenadas para outro.

Você pode realizar várias transformações gráficas em um objeto de exibição como a seguir:

  • Defina as propriedades de um objeto da matriz
  • Aplique esse objeto da matriz à propriedade da matriz de um objeto em transformação
  • Aplique o objeto de transformação como a propriedade de transformação do objeto de exibição.

Essas funções de transformação incluem a conversão (reposicionamento de x e y), rotação e escalamento.

Matrizes de transformação

Juntos, esses tipos de transformações são conhecidos como transformações relacionadas. Transformações relacionadas preservam a retidão de linhas ao transformar, assim as linhas paralelas se mantêm paralelas.

Um objeto da matriz de transformação é uma matriz de 3 x 3, com os seguintes conteúdos:

| a c tx |
| b d ty |
| u v w  |

Em matrizes de transformação tradicionais, as propriedades do u, v, e w fornecem recursos extras. A classe de matriz só funciona no espaço bidimensional. Por isso, assuma sempre que os valores de propriedade u e v são 0,0, e que o valor da propriedade w é de 1,0. Os valores efetivos da matriz são como os seguintes:

| a c tx |
| b d ty |
| 0 0 1  |

Sintaxe

new flwebgl.geom.Matrix(values)

Parâmetros

NomeTipoDescrição
valuesnúmero[](opcional) Uma matriz que define os valores da matriz no formato [a b c d tx ty]. Se não for especificado, a matriz é definida como identidade.

Métodos

clone()

Descrição

    Este método retorna um clone da instância da matriz.

Retorna

  • Um clone da instância da matriz.
  • Tipo - Matriz  

concat(matrix)

Descrição

    Este método encadeia a matriz fornecida com a matriz atual, combinando de forma eficaz os efeitos geométricos dos dois.

Parâmetros

Retorna

  • Esta é a matriz Útil para o encadeamento de chamadas de método.
  • Tipo - Matriz  

Exemplo

Este exemplo encadeia uma matriz rotativa e uma matriz de dimensionamento.  

NomeTipoDescrição
matrixMatrix
A matriz para multiplicar
var m1 = new flwebgl.geom.Matrix();
m1.rotate(45 * Math.PI / 180);

var m2 = new flwebgl.geom.Matrix();
m2.scale(2, 2);

m1.concat(m2);

copy(matrix)

Descrição

    Este método copia a matriz especificada a esta matriz.

Parâmetros

Retorna

  • Esta é a matriz Útil para o encadeamento de chamadas de método.
  • Tipo - Matriz
NomeTipoDescrição
matrixMatrixA matriz para copiar as propriedades de

equals(mat)

Descrição

    Este método verifica se a matriz fornecida tem os mesmos valores que esta instância.

Parâmetros

Retorna

  • Tipo - booliano
NomeTipoDescrição
matMatrixA matriz para comparar

getValues()

Descrição

    Este método retorna os valores dos elementos na matriz.

Retorna

  • Uma matriz que define os valores da matriz no formato [a b c d tx ty]
  • Tipo -  número[]

Exemplo

Este exemplo obtém os valores de uma matriz e a modifica para ser desviada por um fator de 0,5.

var m = new flwebgl.geom.Matrix();
var arr = m.getValues();
arr[1] = 0.5;
m.setValues(arr);

identity()

Descrição

    Este método define a matriz para uma matriz de identidade.

Retorna

  • Esta é a matriz Útil para o encadeamento de chamadas de método.
  • Tipo - Matriz

invert()

Descrição

    Este método inverte a matriz, com efeito, a matriz inversa aplica a transformação oposta.

Retorna

  • Esta é a matriz Útil para o encadeamento de chamadas de método.
  • Tipo - Matriz

isIdentity()

Descrição

    Este método indica ‘real’, se a matriz for uma matriz de identidade.

Retorna

  • Tipo - booliano

rotação(ângulo)

Descrição

    Este método aplica uma transformação de rotação para a matriz.

Parâmetros

Retorna

  • Esta é a matriz Útil para o encadeamento de chamadas de método.
  • Tipo - Matriz

Exemplo

Este exemplo cria uma nova instância da matriz inicializada para a matriz de identidade e gira em 45 graus.

NomeTipoDescrição
anglenúmeroO ângulo está em radianos. Para usar graus, multiplique por Math.PI/180.
var m = new flwebgl.geom.Matrix();
m.rotate(45 * Math.PI / 180);

escala(x, y)

Descrição

    Este método aplica uma transformação de escala para a matriz.

Parâmetros

Retorna

  • Esta é a matriz Útil para o encadeamento de chamadas de método.
  • Tipo - Matriz

Exemplo

Este exemplo cria uma nova instância da matriz inicializada para a matriz de identidade e dimensiona-a por um fator de 2, horizontalmente e verticalmente.

NomeTipoDescrição
xnúmeroO fator de escala horizontal.
ynúmeroO fator de escala vertical
var m = new flwebgl.geom.Matrix();
m.scale(2, 2);

setValues(values)

Descrição

    Este método define os valores dos elementos na matriz.

Parâmetros

Exemplo

Veja o exemplo na função getValues().

NomeTipoDescrição
values
número[]Uma matriz que define os valores da matriz no formato[a b c d tx ty].

transformPoint(point)

Descrição

    Este método transforma um ponto de acordo com esta matriz.

Parâmetros

Retorna

  • O ponto transformado
  • Tipo - Ponto
NomeTipoDescrição
pointPointO ponto para transformar

transformRect(rect)

Descrição

    Este método transforma todos os quatro pontos da rect de acordo com esta matriz.

Parâmetros

Retorna

  • O Rect transformado
  • Tipo - Rect
NomeTipoDescrição
rectRect
O rect para transformar

translate(dx, dy)

Descrição

    Este método traduz a matriz sobre os eixos x e y.

Parâmetros

Retorna

  • Esta é a matriz Útil para o encadeamento de chamadas de método.
  • Tipo - Matriz
NomeTipoDescrição
dxnúmeroA quantidade de movimento ao longo do eixo X para a direita.
dynúmeroA quantidade de movimento para baixo ao longo do eixo Y.

Esta obra está licenciada sob uma licença não adaptada da Creative Commons Attribution-Noncommercial-Share Alike 3.0  As publicações do Twitter™ e do Facebook não são cobertas pelos termos do Creative Commons.

Avisos legais   |   Política de privacidade online