scale

Muda a escala de um polyshape por um fator, em torno de um ponto central.

Categoria: Mathematics > Computational Geometry

Sintaxe

pshape = scale(pshape, s)

Multiplica todas as coordenadas pelo escalar s.

pshape = scale(pshape, [sx sy])

Usa fatores diferentes em x e y.

pshape = scale(pshape, [sx sy], center)

Muda a escala em torno do ponto center = [x y] em vez da origem.

Descrição

O ponto center permanece onde está e todos os outros vértices se movem ao longo da reta a partir do centro pelo fator dado. Com fator 2 a forma dobra de largura e altura, e a área fica quatro vezes maior. Um fator negativo espelha a forma.

O nome scale também é usado em outras áreas para normalizações sem relação; com um polyshape é mudança de escala geométrica.

Argumentos de entrada

pshape
Um objeto polyshape.
s
Fator de escala: um escalar, ou um vetor de dois elementos [sx sy].
center
Ponto fixo da mudança de escala.

Argumentos de saída

pshape
O polyshape com a escala alterada. A área muda por sx*sy.

Exemplo

Esticar um retângulo só em x

P = polyshape([0 2 2 0], [0 0 1 1]);
S = scale(P, [3 1], [0 0]);
S.Vertices
are = [area(P) area(S)]
Saída
ans = 4×2

     0     0
     0     1
     6     1
     6     0
are = 1×2

     2     6

Observações

No MatLivre, use a forma vetorial [sx sy] quando também informar um centro; a forma escalar com centro não é tratada corretamente.

Veja também

rotate translate polyshape area