Open GL - dibujo de una espiral en 3D

   
Vista:

dibujo de una espiral en 3D

Publicado por clara (2 intervenciones) el 17/02/2011 20:19:06
Para dibujar una espiral en 3D, existe alguna funcion en openGl?
Si no es asi, como se realizaria? a traves de la union de circulos o habria que realizar la espiral poco a poco a traves del pintado de pequeñas rectas que fuesen trazando la curva?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

dibujo de una espiral en 3D

Publicado por Carlos (6 intervenciones) el 25/12/2014 07:12:35
Dibujar una espiral es sencillo, solo tienes que echarle un poco de imaginación!

Mira, te explico: Vamos a imaginarnos un círculo, vale, pues ahora imagínate que a medida que se va generando el círculo vamos aumentando el eje perpendicular al área de dicho círculo. Al final obtendrás la espiral que deseas!

Aunque tu deberías intentar diseñar tu propia función, te voy a dar una; aunque debería mejorar mi función o diseñar la suya propia!


#define PI 3.14159265359f

void GenerarEspiral(float Radio, float Longitud, float Espiras, int Ciclos, int Espira[]) {
int Contador = 0;
float MaxRango = 2.0f * Espiras * PI;

for(float i = 0; i <= MaxRango; i += MaxRango / (float)Ciclos) {
Espira[Contador] = Radio * cos(i);
Contador++;
Espira[Contador] = Radio * sin(i);
Contador++;
Espira[Contador] = Longitud * i / MaxRango;
Contador++;
}
}

Nota que no puedes introducir la dirección de la espiral. Si quieres añadirle dirección, eres libre de hacerlo :D

El código funciona de una manera muy simple. No te voy a explicar como funciona, sino como debes hacerlo funcionar (el como funciona puede estudiarlo usted :D). Lo único que tienes que hacer es introducir los datos de una espira común (Radio de la espira, longitud de la misma y el número de espiras que tendrá). El último parámetro es un arreglo que contendrá los vectores de cada parte de la espira.

La espira estará orientada así (por defecto): Plano XY: Se verá un círculo, como si de un cilindro se tratase. Planos XZ e YZ, se verá como un muelle, supongo que se podrá imaginar por qué

Si no entiendes algo del código, o si no funciona (porque no lo he probado), dímero y te lo explicaré con todo detalle.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar