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.
Returns vetor resultante
Multiplica um vetor por um número.
Example
(vmulc (vector 1 2 3) 2)
Returns vetor resultante
Adiciona dois vetores, um ao outro.
Example
(vaddc (vector 1 2 3) (vector 1 2 3))
Returns vetor resultante
Subtrai um vetor de outro.
Example
(vsubc (vector 1 2 3) (vector 1 2 3))
Returns vetor resultante
Divide um vetor por um número
Example
(vdivc (vector 1 2 3) 2)
Returns vetor resultante
Multiplica (transforma) um vetor por uma matriz.
Example
(vtransform (vector 0 1 0) (mrotate (vector 90 0 0)))
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)))
Returns vetor resultante
Retorna a forma normalisada do vetor (length=1)
Example
(vnormalise (vector 3 4 5))
Returns número resultante
Retorna o produto multiplicado de dois vetores.
Example
(vdot (vector 0 1 0) (vector 1 0 0))
Returns número resultante
Retorna a magnitude, ou alcance do vetor
Example
(vmag (vector 0 1 1))
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))
Returns número resultante
Tratando os vetores como pontos, retorna a distancia entre eles.
Example
(vdist (vector 100 100 0) (vector 0 0 100))
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))
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))
Returns vetor-matriz
Multiplica duas matrizes.
Example
(mmul (mtranslate (vector 1 0 0)) (mrotate (vector 0 90 0)))
Returns vetor-matriz
Adiciona duas matrizes.
Example
(madd (mtranslate (vector 1 0 0)) (mrotate (vector 0 90 0)))
Returns vetor-matriz
Subtrai uma matriz de outra.
Example
(msub (mtranslate (vector 1 0 0)) (mrotate (vector 0 90 0)))
Returns vetor-matriz
Divide uma matriz por outra.
Example
(mdiv (mtranslate (vector 1 0 0)) (mrotate (vector 0 90 0)))
Returns vetor-matriz
Retorna a matriz identidade
Example
(mident)
Returns vetor-matriz
Retorna uma matriz representando a tranformação(translação) especificada.
Example
(mtranslate (vector 100 0 0))
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))
Returns vetor-matriz
Retorna uma matriz representando a escalagem especificada.
Example
(mscale (vector 0.5 2 0.5))
Returns vetor matriz
Retorna a transposta do vetor de entrada
Example
(mtranspose (mident))
Returns vetor-matriz
Retorna o inverso do vetor de entrada.
Example
(minverse (mscale (vector 0.5 2 0.5)))
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))
Returns vetor
Retorna os angulos euler extraidos da matriz.
Example
(matrix->euler (mrotate (vector 15 0 0)))
Returns vetor-quaternion
Retorna o quatérnio representando o ângulo de rotação sobre o eixo especificado.
Example
(qaxisangle (vector 0 1 0) 45)
Returns vetor-quatérnio
Multiplica um quatérnio por outro.
Example
(qmul (qaxisangle (vector 0 1 0) 45) (qaxisangle (vector 0 0 1) 180))
Returns vetor-quatérnio
Normalisa um quatérnio
Example
(qnormalise (qaxisangle (vector 0 19 0) 45))
Returns vetor-matriz
Converte um quatérnio em uma matriz de rotação
Example
(qtomatrix (qaxisangle (vector 0 1 0) 45))
Returns vetor-quatérnio
Conjuga um quatérnio
Example
(qconjugate (qaxisangle (vector 0 1 0) 45))
Returns numero-real
Retorna o resto em ponto-flutuante de numerador/denominador.
Example
(fmod 14.4 10)
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))
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))
Returns void
Ajusta o valor da semente para o noise.
Example
(noise-seed 1)
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