<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
Si, uso una especie de "miniopenGl", un opengl con menos funciones. Suena interesante lo que propones, dices una cosa así:<div><br></div><div>...</div><div><div><font class="Apple-style-span" face="'Courier New'"><span class="Apple-style-span" style="font-size: 12pt; "><font class="Apple-style-span" color="#00B050">// renderizo los objetos de la escena</font></span></font></div><div><font class="Apple-style-span" face="'Courier New'"><font class="Apple-style-span" color="#000000"><span class="Apple-style-span" style="font-size: 12pt; "><br></span></font></font></div><div><font class="Apple-style-span" face="'Courier New'" size="4"><span class="Apple-style-span" style="font-size: 16px;"><font class="Apple-style-span" color="#00B050">// Reseteo la matriz MODELVIEW</font></span></font></div><div><font class="Apple-style-span" face="'Courier New'"><font class="Apple-style-span" color="#000000"><span class="Apple-style-span" style="font-size: 12pt; ">glMatrixMode(GL_MODELVIEW);<br>glLoadIdentity();</span></font></font><font class="Apple-style-span" face="'Courier New'"><font class="Apple-style-span" color="#000000"><span class="Apple-style-span" style="font-size: 12pt; "><br></span></font></font></div></div><div><div><div><font class="Apple-style-span" face="'Courier New'"><font class="Apple-style-span" color="#000000"><span class="Apple-style-span" style="font-size: 12pt; "><br></span></font></font></div><div><font class="Apple-style-span" face="'Courier New'"><font class="Apple-style-span" color="#000000"><span class="Apple-style-span" style="font-size: 12pt; ">gluLookAt( pos.x, pos.y, pos.z, vista.x, vista.y, vista.z, 0.0, 1.0, 0.0);<br></span></font></font></div><div><font class="Apple-style-span" face="'Courier New'"><font class="Apple-style-span" color="#000000"><span class="Apple-style-span" style="font-size: 12pt; "><br></span></font></font></div><div><div><font class="Apple-style-span" face="'Courier New'"><span class="Apple-style-span" style="font-size: 12pt; "><font class="Apple-style-span" color="#00B050">// Objeto en questión</font></span></font></div><div><font class="Apple-style-span" face="'Courier New'"><font class="Apple-style-span" color="#000000"><span class="Apple-style-span" style="font-size: 12pt; ">Objeto->render(pos.x+0.0,pos.y+0.0,pos.z+0.0, 0.0,0.0,0.0);</span></font></font></div><div><font class="Apple-style-span" face="'Courier New'"><font class="Apple-style-span" color="#000000"><span class="Apple-style-span" style="font-size: 12pt; "><br></span></font></font></div></div><div><div><font class="Apple-style-span" face="'Courier New'"><font class="Apple-style-span" color="#000000"><span class="Apple-style-span" style="font-size: 12pt; ">glFlush(0); <font class="Apple-style-span" color="#00B050">// Vacío el buffer</font></span></font></font></div><div><font class="Apple-style-span" color="#00B050" face="'Courier New'" size="4"><span class="Apple-style-span" style="font-size: 16px;">// y vuelta a empezar</span></font></div><div><br></div></div><div><div>Lo probaré y luego cuento la experiencia</div><div><br></div></div><div>> Date: Fri, 28 Aug 2009 11:12:29 +0200<br>> From: ferranferri@gmail.com<br>> To: cconclase@listas.conclase.net<br>> Subject: Re: [C con Clase] FW: Resolver Z usando los angulos Horizontal y   Vertical<br>> <br>> Si estas trabajando con OpenGL puede haber otra tecnica mas chapuzas<br>> pero que sirve igual. Primero dibujas la escena, reseteas la matriz<br>> modelview, situas la camara y despues pones el objeto sin resetear<br>> otra vez la modelview. Con eso consigues que la posicion de ese objeto<br>> sea siempre respecto a la camara.<br>> <br>> En DirectX funciona exactamente igual, aunque no conozco tan bien el<br>> API como para decirte los pasos pero es basicamente lo mismo.<br>> Ferran<br>> <br>> <br>> <br>> 2009/8/27 Pedro Rodríguez González <sr.whiteskull@hotmail.com>:<br>> > Creo q no me expliqué claramente Steve, pero gracias por responder, el tema<br>> > es que estoy desarrollando una aplicación 3d (casi no hace falta ni que lo<br>> > mencione), y tengo una "camara", en las posicion pos(vector3D), que a su vez<br>> > apunta a las coordenadas vista(vector3D), sólo con estos datos "podría"<br>> > colocar un elemento orbitando alrededor de la cámara, de ahí que use un<br>> > vector de coordenadas p, si sólo fuera que girara alrededor cómo la "Luna"<br>> > sobre la "Tierra", eso es algo que está chupao... y es lo que muestro en el<br>> > código, pero realmente lo que necesito es que ese objeto se mantenga fijo<br>> > delante de la vista de la cámara, mire a donde mire... en éste esquema<br>> > "chapucilla" se puede apreciar más o menos la idea.<br>> > Y claro no lo consigo, hace un par de años buenos lo hice, se que era así<br>> > más o menos, pero todo los trabajos que hice hace años se quedaron en<br>> > el portátil desguazado que regalé al instituto (para su estudio)...<br>> ><br>> > Si no me equivoco, ||p|| = radical( (p.x)^2 + (p.y)^2 + (p.z)^2 ) esta<br>> > formula me devuelve la distancia entre dos vectores, no habré usado ni pocas<br>> > veces ni nada...<br>> >> Date: Thu, 27 Aug 2009 15:26:56 -0400<br>> >> From: srd4121@njit.edu<br>> >> To: cconclase@listas.conclase.net<br>> >> Subject: Re: [C con Clase] FW: Resolver Z usando los angulos Horizontal y<br>> >> Vertical<br>> >><br>> >> Hola Pedro,<br>> >><br>> >> Pedro Rodríguez González wrote:<br>> >> > Q tal chicos, no se cómo andarán de matemáticas, pero yo<br>> >> > fatal... Ruborizado<br>> >> ><br>> >> > No consigo dar con la posición Z para un vector 3D...<br>> >> ><br>> >> > *Código:*<br>> >> > ...<br>> >> > ...<br>> >> > // obtenemos el angulo en radianes<br>> >> > anguloH=atan2(vista.z-pos.z,vista.x -pos.x);<br>> >> > anguloV=atan2(vista.z-pos.z,vista.y -pos.y);<br>> >> ><br>> >> > p.x=radio*cos(anguloH);<br>> >> > p.y=radio*cos(anguloV);<br>> >> > // Que pueo hacer X o Y<br>> >> > //p.z=sin(anguloH); // funciona pero solo en horizontal<br>> >> > //p.z=sin(anguloV); // funciona pero solo en vertical<br>> >> > ...<br>> >> > ...<br>> >> ><br>> >> ><br>> >> ><br>> >> > gracias a todo aquel que me aporte una solución sencilla...<br>> >> ><br>> >><br>> >> Según estoy viendo, quieres crear un vector, p, para que vaya de 'pos' a<br>> >> 'vista'. Si esto es así, no necesitas hacer todo esto. Simplemente, crea<br>> >> el vector a partir de dos puntos; esto es,<br>> >><br>> >> p = vista - pos<br>> >><br>> >> Por componentes, esto es equivalente a:<br>> >><br>> >> p.x = vista.x - pos.x<br>> >> p.y = vista.y - pos.y<br>> >> p.z = vista.z - pos.z<br>> >><br>> >> Si quieres que la magnitud (o longitud) del vector, p, sea igual a<br>> >> 'radio', entonces se tratará de una especie de "normalización". Esto es,<br>> >><br>> >> p = (radio / ||p||) * p,<br>> >><br>> >> donde ||p|| = magnitud del vector p, que se calcula así:<br>> >> ||p|| = radical( (p.x)^2 + (p.y)^2 + (p.z)^2 )<br>> >><br>> >> Ahora p tendrá de magnitud 'radio'.<br>> >><br>> >><br>> >> Espero que esto te oriente.<br>> >><br>> >> Steven<br>> >><br>> >><br>> >> _______________________________________________<br>> >> Lista de correo Cconclase Cconclase@listas.conclase.net<br>> >> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net<br>> >> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ<br>> ><br>> > ________________________________<br>> > Get news, entertainment and everything you care about at Live.com. Check it<br>> > out!<br>> > _______________________________________________<br>> > Lista de correo Cconclase Cconclase@listas.conclase.net<br>> > http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net<br>> > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ<br>> ><br>> <br>> _______________________________________________<br>> Lista de correo Cconclase Cconclase@listas.conclase.net<br>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net<br>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ<br></div></div></div><br /><hr />Connect to the next generation of MSN Messenger   <a href='http://imagine-msn.com/messenger/launch80/default.aspx?locale=en-us&source=wlmailtagline' target='_new'>Get it now! </a></body>
</html>