2011-03-16 35 views
6

Estoy tratando de dibujar una línea punteada en OpenGl usando una textura espaciada equitativamente a lo largo de la ruta como los guiones. Puedo obtener una línea sólida, pero eso no funcionará para este proyecto. ¿Alguien podría ayudarme a orientarme en la dirección correcta?Ayuda para dibujar una línea punteada en OpenGl

Respuesta

9

La línea punteada o discontinua en OpenGL se llama punteada.

glPushAttrib(GL_ENABLE_BIT); 
# glPushAttrib is done to return everything to normal after drawing 

glLineStipple(1, 0xAAAA); # [1] 
glEnable(GL_LINE_STIPPLE); 
glBegin(GL_LINES); 
glVertex3f(-.5,.5,-.5); 
glVertex3f(.5,.5,-.5); 
glEnd(); 

glPopAttrib(); 

0xAAAA es el parámetro con el que desea experimentar.

(Procedente de here)

+0

Este enlace no se abre. – user661855

+0

Creo que el enlace se supone que es http://3dengine.org/Drawing_dotted_lines_(OpenGL) Que también se rompió, por lo que http://tinyurl.com/4nzdy3e –

+0

@ user661855: El contenido del código se pega en mi actualización responder. – visakh7

0

La mejor manera sería utilizar glBegin (GL_POINTS); y distribuye los puntos de forma lineal.

+0

puede sugerir esta sintaxis para OpenGL ES2.0 en android? – harikrishnan

+0

Ver la respuesta de 7KV7 – atx

0

Una línea discontinua es solo una serie de segmentos de línea colineales con espacios intermedios. Si desea texturizar, puede emitir un grupo de quads. Puedes controlar las coordenadas de la textura para que cada guión sea una parte de la textura, o cada guión abarque toda la textura o cualquier otro patrón de repetición que desees.

¿Qué has intentado hasta ahora? Muestra el código que no funciona y el gráfico de salida que crea. Luego explica qué quieres ser diferente.

+0

El usuario dibuja la ruta en la que debo obtener la textura. Uso el - (void) touchesBegan: (NSSet *) toca, - (void) touchesMoved: (NSSet *) toca y - (void) toquesEnded: (NSSet *) toca para rastrear desde donde dibuja el usuario. Dibujo una línea continua usando ... – user661855

+0

@ user661855: Puede editar su pregunta, si tiene muchos detalles para agregar (y lo hace). El código no encaja bien en los comentarios. –

+0

@ user661885: Mi recomendación sería dibujar una línea continua mientras el usuario está rastreando, luego, cuando dejen de tocar la pantalla, reemplácela por un grupo de quads distribuidos a lo largo de la diagonal. ¿O estás tratando de seguir un camino que no es una línea recta? –

Cuestiones relacionadas