matematica

Description

Estas funções sao optimizadas para gráficos em 3d, e a colisão entre ciência da computação e matemática é aparente aqui, então vetores representando "vectors" são nesse contexto tidos como 3 elementos em tamanho, quaternions são vetores de tamanho 4, e matrizes são vetores de 16 elementos.

(vmulc vetor número)

Returns vetor resultante

Multiplica um vetor por um número.

Example

 (vmulc (vector 1 2 3) 2)

(vaddc vetor vetor)

Returns vetor resultante

Adiciona dois vetores, um ao outro.

Example

 (vaddc (vector 1 2 3) (vector 1 2 3))

(vsubc vetor vetor)

Returns vetor resultante

Subtrai um vetor de outro.

Example

 (vsubc (vector 1 2 3) (vector 1 2 3))

(vdivc vetor número)

Returns vetor resultante

Divide um vetor por um número

Example

 (vdivc (vector 1 2 3) 2)

(vtransform vetor matriz)

Returns vetor resultante

Multiplica (transforma) um vetor por uma matriz.

Example

 (vtransform (vector 0 1 0) (mrotate (vector 90 0 0)))

(vtransform-rot vetor matriz)

Returns vetor resultante

Multiplica (transforma) um vetor por uma matriz, mas deixa de fora a parte de translação. Para ser usado em operações involvendo normais.

Example

 (vtransform-rot (vector 0 1 0) (mrotate (vector 90 0 0)))

(vnormalise vetor)

Returns vetor resultante

Retorna a forma normalisada do vetor (length=1)

Example

 (vnormalise (vector 3 4 5))

(vdot vetor vetor)

Returns número resultante

Retorna o produto multiplicado de dois vetores.

Example

 (vdot (vector 0 1 0) (vector 1 0 0))

(vmag vetor)

Returns número resultante

Retorna a magnitude, ou alcance do vetor

Example

 (vmag (vector 0 1 1))

(vreflect vetor vetor)

Returns vetor-resultante

Retorna a reflexão de um vetor em relação ao outro.

Example

 (vreflect (vector 0 1 1) (vector 1 0 1))

(vdist vetor vetor)

Returns número resultante

Tratando os vetores como pontos, retorna a distancia entre eles.

Example

 (vdist (vector 100 100 0) (vector 0 0 100))

(vdist-sq vetor vetor)

Returns número resultante

Tratando os vetores como pontos, retorna a distancia entre eles.

Example

 (vdist-sq (vector 100 100 0) (vector 0 0 100))

(vcross vetor vetor)

Returns vetor resultante

Retorna o produto cruzado entre dois vetores, resultando em um vetor que é perpendicular aos cruzados.

Example

 (vcross (vector 100 100 0) (vector 0 0 100)) 

(mmul vetor-matriz vetor-matriz)

Returns vetor-matriz

Multiplica duas matrizes.

Example

 (mmul (mtranslate (vector 1 0 0)) (mrotate (vector 0 90 0)))

(madd vetor-matriz vetor-matriz)

Returns vetor-matriz

Adiciona duas matrizes.

Example

 (madd (mtranslate (vector 1 0 0)) (mrotate (vector 0 90 0)))

(msub vetor-matriz vetor-matriz)

Returns vetor-matriz

Subtrai uma matriz de outra.

Example

 (msub (mtranslate (vector 1 0 0)) (mrotate (vector 0 90 0)))

(mdiv vetor-matriz vetor-matriz)

Returns vetor-matriz

Divide uma matriz por outra.

Example

 (mdiv (mtranslate (vector 1 0 0)) (mrotate (vector 0 90 0)))

(mident)

Returns vetor-matriz

Retorna a matriz identidade

Example

 (mident)

(mtranslate vetor)

Returns vetor-matriz

Retorna uma matriz representando a tranformação(translação) especificada.

Example

 (mtranslate (vector 100 0 0))

(mrotate vetor)

Returns vetor-matriz

Retorna uma matriz representando a rotação especificada. Aceita um vetor de angulos euler, ou um quatérnio.

Example

 (mrotate (vector 0 45 0))

(mscale vetor)

Returns vetor-matriz

Retorna uma matriz representando a escalagem especificada.

Example

 (mscale (vector 0.5 2 0.5))

(mtranspose vetor-matriz)

Returns vetor matriz

Retorna a transposta do vetor de entrada

Example

 (mtranspose (mident))

(minverse vetor-matriz)

Returns vetor-matriz

Retorna o inverso do vetor de entrada.

Example

 (minverse (mscale (vector 0.5 2 0.5)))

(maim vetor-mira vetor-acima)

Returns vetor-matriz

Retorna uma matriz representando uma rotação de mira de forma que o eixo X aponta pra baixo da direção de mira, e o eixo y aponta pra cima do vetor de cima. Provavelmente sofre do Gimbal Lock.

Example

 (maim (vector 0 0 1) (vector 0 1 0))

(matrix->euler matriz-vetor)

Returns vetor

Retorna os angulos euler extraidos da matriz.

Example

 (matrix->euler (mrotate (vector 15 0 0)))

(qaxisangle vetor-eixo angulo)

Returns vetor-quaternion

Retorna o quatérnio representando o ângulo de rotação sobre o eixo especificado.

Example

 (qaxisangle (vector 0 1 0) 45)

(qmul vetor-quatérnio vetor-quatérnio)

Returns vetor-quatérnio

Multiplica um quatérnio por outro.

Example

 (qmul (qaxisangle (vector 0 1 0) 45) (qaxisangle (vector 0 0 1) 180))

(qnormalise vetor-quatérnio)

Returns vetor-quatérnio

Normalisa um quatérnio

Example

 (qnormalise (qaxisangle (vector 0 19 0) 45))

(qtomatrix vetor-quatérnio)

Returns vetor-matriz

Converte um quatérnio em uma matriz de rotação

Example

 (qtomatrix (qaxisangle (vector 0 1 0) 45))

(qconjugate vetor-quatérnio)

Returns vetor-quatérnio

Conjuga um quatérnio

Example

 (qconjugate (qaxisangle (vector 0 1 0) 45))

(fmod numero-numerador numero-denominador)

Returns numero-real

Retorna o resto em ponto-flutuante de numerador/denominador.

Example

 (fmod 14.4 10)

(snoise numero-real)

Returns numero-real

Retorna Simplex Noise 1D/2D/3D/4D no intervalo -1->1 dependendo do número de parâmetros.

Example

 (snoise 1.0 2.0) ; 2D noise
 (snoise 6.1 2.4 .5 1.3) ; 4D noise
 
 ; example on a pixel prim
 (clear)
 (with-primitive (build-pixels 100 100)
     (pdata-index-map!
         (lambda (i c)
             (snoise (* 0.1 (modulo i (pixels-width)))
                     (* 0.1 (quotient i (pixels-height)))))
         "c")
     (pixels-upload))

(noise numero-real)

Returns numero-real

Retorna o valor do Noise Perlin nas coordenadas especificadas.

Example

 (noise 1.0 2.0) ; 2D noise
 (noise 6.1 2.4 .5) ; 3D noise

 ; example on a pixel prim
 (clear)
 (with-primitive (build-pixels 100 100)
     (pdata-index-map!
         (lambda (i c)
             (noise (* 0.1 (modulo i (pixels-width)))
                    (* 0.1 (quotient i (pixels-height)))))
         "c")
     (pixels-upload))

(noise-seed numero-unsigned)

Returns void

Ajusta o valor da semente para o noise.

Example

 (noise-seed 1)

(noise-detail numeros-oitavos numeros-queda)

Returns void

Ajusta o caráter e nível de detalhe produzido pelo função noise Perlin.

Example

 (noise-detail 4) ; noise with 4 octaves
 (noise-detail 4 .5) ; noise with 4 octaves and .5 falloff