Documentos de Académico
Documentos de Profesional
Documentos de Cultura
I OBJETIVO DE LA PRCTICA:
Elaborar un programa utilizando la librera Three.js que grafique una figura 3D personalizada (la figura no debe ser ninguna de
las vistas en clase y/o practicas anteriores) y mostrarla en la escena. Agregar una interfaz grfica (utilizando controles GUI)
para aplicarle las transformaciones bsicas (Rotacin, Escalacin y Traslacin) y agregar un Texto 3D a la escena con su
nombre propio. Ver instrucciones Practica 4 en el archivo anexo que se encuentra en la plataforma Moodle
(Graficacion_Instrucciones_Practicas_U3.pdf).
IV. REQUISITOS:
El alumno deber contar con conocimientos sobre lenguaje de programacin Java. Graficacin de objetos 3D y transformaciones.
Sistema de coordenadas (x, y, z).
V. PROCEDIMIENTOS: (Escriba el procedimiento llevado a cabo en la prctica; puede incluir imgenes adems de la
explicacin por cada paso)
Es una biblioteca liviana escrita en JavaScript para crear y mostrar grficos animados por ordenador en 3D en un
navegador Web y puede ser utilizada en conjuncin con el elemento canvas de HTML5, SVG WebGL. El cdigo fuente
est alojado en un repositorio en GitHub
VI. RESULTADOS Y CONCLUSIONES FINALES. Escriba los resultados obtenido y/o conclusiones
VII. CUESTIONARIO
1. Qu problemas se encontraron al resolver la prctica?
Como comenzar
<html>
<head>
<title>Ejercicio 3</title>
//crear escena
var escenario = new THREE.Scene();
//crear render
var renderer = new THREE.WebGLRenderer();
renderer.setClearColor(0xFFFFFF);
renderer.setSize(window.innerWidth, window.innerHeight);
//crear camara
var camara = new THREE.PerspectiveCamera(25, window.innerWidth / window.innerHeight, 1, 1000);
camara.position.set(100, 100, 100);
/*camara.position.x=0;
camara.position.y=0;
camara.position.z=100;*/
camara.lookAt(escenario.position);
//controles orbit
var controlesOrbit = new THREE.OrbitControls(camara, renderer.domElement);
controlesOrbit.addEventListener('change', renderer);
//resize de ventana
THREEx.WindowResize(renderer, camara);
//por teclado
var teclado = new THREEx.KeyboardState();
//crar grid
var grid = new THREE.GridHelper(50, 5);
var coloLineasP = new THREE.Color("rgb(255,0,0)");
var colorGrid = new THREE.Color("rgb(0,0,0)");
grid.setColors(coloLineasP, colorGrid);
escenario.add(grid);
//plano 2D
//crear el dodecaedro
//controles GUI
};
//interfaz
//interfaz rotacion
var interfazrotacion = interfaztransformacion.addFolder("Rotacion");
interfazrotacion.add(controlesGUI, 'rotarX', -10, 10);
interfazrotacion.add(controlesGUI, 'rotarY', -10, 10);
interfazrotacion.add(controlesGUI, 'rotarZ', -10, 10);
//interfaz escalacion
var interfazescalacion = interfaztransformacion.addFolder("Escalacion");
interfazescalacion.add(controlesGUI, 'escalarX', -10, 10);
interfazescalacion.add(controlesGUI, 'escalarY', -10, 10);
interfazescalacion.add(controlesGUI, 'escalarZ', -10, 10);
//interfaz traslacion
var interfaztraslacion = interfaztransformacion.addFolder("Traslacion");
var contX = interfaztraslacion.add(controlesGUI, 'trasladarX', -50, 50);
var contY = interfaztraslacion.add(controlesGUI, 'trasladarY', -50, 50);
var contZ = interfaztraslacion.add(controlesGUI, 'trasladarZ', -50, 50);
contX.listen();
contX.onChange(function (value) { dodecaedro.position.x = controlesGUI.trasladarX });
contY.listen();
contY.onChange(function (value) { dodecaedro.position.y = controlesGUI.trasladarY });
contZ.listen();
contZ.onChange(function (value) { dodecaedro.position.z = controlesGUI.trasladarZ });
dodecaedro.rotation.x = controlesGUI.rotarX;
dodecaedro.rotation.y = controlesGUI.rotarY;
dodecaedro.rotation.z = controlesGUI.rotarZ;
}
function Renderizar()
{
stats.update();
//controlesOrbit.update();
//renderisar escena, objetos y camara
renderer.render(escenario, camara);
}
function initStats()
{
var stats = new Stats();
//0 - fps, 1 - ms
stats.setMode(0);
stats.domElement.style.position = 'absolute';
stats.domElement.style.top = '0px';
stats.domElement.style.left = '0px';
document.getElementById("Stats-output").appendChild(stats.domElement);
return stats;
}
window.onload = init;
</script>
</body>
</html>