Principal | Gráficos 3D | Gráficos 2D | Fractales | Math | Códigos | Tutoriales | Links

Vectores

Modulo de un vector

Si x, y, z son las componentes del vector A se define como modulo a |A| = sqrt(x*x + y*y + z*z).

//modulo de un vector
GLfloat Modulo(GLfloat x, GLfloat y, GLfloat z)
{
 GLfloat len;

 len = x*x + y*y + z*z;
 return ( sqrt(len));
}

Vector Normalizado

Se llama haci al vector que tiene como modulo a 1.

//Vector de mudulo 1 o Normalizado
GLvoid Normaliza(GLfloat *x, GLfloat *y, GLfloat *z)
{
 GLfloat len;

 len = Modulo(*x, *y, *z);
 len = 1.0/len;
 (*x) *= len;
 (*y) *= len;
 (*z) *= len;
}

Producto Escalar

Se llama producto escalar de dos vectores A, B al escalar obtenido como producto de los modulos de A y B por el coseno del angulo formado por los dos vectores.

A.B = |A|*|B|*cos(rho)

tambien se lo puede expresar mediante sus componentes

A.B = a1*b1 + a2*b2 + a3*b3

//Producto Escalar
GLfloat ProductoEscalar(GLfloat A[], GLfloat B[])
{
 return (A[0]*B[0] + A[1]*B[1] + A[2]*B[2]);
}

Producto Vectorial

Se llama producto vectorial de dos vectores A y B al vector C que tiene

Lo podemos expresar tambien por sus coponentes A(a1,a2,a3) , B(b1,b2,b3), C(c1,c2,c3).

C=AxB

c1 = a2*b3 - a3*b2

c2 = a3*b1 - a1*b3

c3 = a1*b2 - a2*b1

//Producto Vectorial
GLvoid ProductoVectorial(GLfloat A[], GLfloat B[],
                         GLfloat *C1,
                         GLfloat *C2, 
                         GLfloat *C3)
{
 *C1 = A[1]*B[2] - A[2]*B[1];
 *C2 = A[2]*B[0] - A[0]*B[2];
 *C3 = A[0]*B[1] - A[1]*B[0];
}


valcoey@hotmail.com

Ramiro Alcocer, 2001

Principal | Gráficos 3D | Gráficos 2D | Fractales | Math | Códigos | Tutoriales | Links