<!doctype html>
|
|
|
|
<html>
|
|
|
|
<head>
|
|
<title>Jumbotron</title>
|
|
<meta name="viewport" content="width=device-width">
|
|
<link rel="stylesheet" href="Modelos/css/bootstrap.css">
|
|
<script type="text/javascript" src="Modelos/js/jquery.min.js"></script>
|
|
<script type="text/javascript" src="Modelos/js/bootstrap.min.js"></script>
|
|
<script type="text/javascript" src="Modelos/js/THREEx.WindowResize.js"></script>
|
|
<style type="text/css">
|
|
body {
|
|
padding: 0px;
|
|
margin: 0px;
|
|
overflow: hidden;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="navbar navbar-default navbar-fixed-top">
|
|
<div class="container">
|
|
<div class="navbar-header">
|
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
|
<span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span>
|
|
</button>
|
|
<a class="navbar-brand" href="#">Modelos 3D </a>
|
|
</div>
|
|
<div class="navbar-collapse collapse">
|
|
<ul class="nav navbar-nav">
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Agregar <b class="caret"></b></a>
|
|
<ul class="dropdown-menu">
|
|
<li>
|
|
<a href="#" id="plano">Plano</a>
|
|
</li>
|
|
<li>
|
|
<a href="#" id="figura" >Figura</a>
|
|
</li>
|
|
<li>
|
|
<a href="#" id="cilindro" >Cilindro</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="#" id="cubo">Cubo</a>
|
|
</li>
|
|
<li>
|
|
<a href="#" id="esfera" >Esfera</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="#">Inicio</a>
|
|
</li>
|
|
<li>
|
|
<a href="htp://develoteca.com/contacto">contacto</a>
|
|
</li>
|
|
<li>
|
|
<a href="htp://develoteca.com/">Develoteca.com</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<!--/.navbar-collapse -->
|
|
</div>
|
|
</div>
|
|
<!-- Main jumbotron for a primary marketing message or call to action -->
|
|
<div class="container">
|
|
<!-- Example row of columns -->
|
|
<div id="render"></div>
|
|
</div>
|
|
<!-- /container -->
|
|
<script src="Modelos/js/three.min.js"></script>
|
|
<script src="Modelos/js/OrbitControls.js"></script>
|
|
|
|
<script>
|
|
/************** Variables *************/
|
|
//Preparamos el render
|
|
var Render=new THREE.WebGLRenderer();
|
|
//El escenario
|
|
var Escenario=new THREE.Scene();
|
|
|
|
// Figura
|
|
var figura;
|
|
var controls;
|
|
var ancho = innerWidth;
|
|
var alto = innerHeight;
|
|
var angulo = 45;
|
|
var Aspecto = ancho / alto;
|
|
var cerca = 0.1;
|
|
var lejos = 10000;
|
|
|
|
|
|
//La cámara
|
|
Camara=new THREE.PerspectiveCamera(angulo, Aspecto, cerca, lejos);
|
|
THREEx.WindowResize(Render, Camara);
|
|
|
|
/************** Inicio *************/
|
|
function inicio(){
|
|
|
|
|
|
//Tamaño del render(resultado)
|
|
Render.setSize( ancho, alto );
|
|
//Se agrega el render al documento html
|
|
document.body.appendChild(Render.domElement);
|
|
|
|
//Acercamos la cámara en z es profundidad para ver el punto
|
|
Camara.position.z=100;
|
|
Camara.position.y=10;
|
|
//agregando la cámara al escenario
|
|
Escenario.add(Camara);
|
|
//Terrirorio
|
|
crear_plano();
|
|
//Cargar modelos
|
|
cargar_modelo();
|
|
|
|
|
|
// agregamos todo el escenario y la cámara al render
|
|
controls = new THREE.OrbitControls( Camara, Render.domElement );
|
|
|
|
}
|
|
|
|
function cargar_modelo(){
|
|
// Geometría
|
|
Geometria=new THREE.Geometry();
|
|
|
|
// vector a dibujar
|
|
var vertices = [
|
|
[2,7,0], [7,2,0],[12, 7, 0], [12, 17, 0], [7, 12, 0], [2, 17, 0], [2,7,0]];
|
|
|
|
var long_vertices = vertices.length;
|
|
var array_extrude = [];
|
|
|
|
for(i=0;i<long_vertices;i++){
|
|
x = vertices[i][0];
|
|
y = vertices[i][1];
|
|
z = vertices[i][2];
|
|
|
|
//Agregamos vértices al vector
|
|
Vector = new THREE.Vector3(x,y,z);
|
|
//Agregamos el vector a la geometria
|
|
Geometria.vertices.push(Vector);
|
|
array_extrude.push(Vector);
|
|
}
|
|
//Figura
|
|
var forma_figura = new THREE.Shape(array_extrude);
|
|
|
|
// extrudion;
|
|
var datos_extrucion = {
|
|
amount: 10,
|
|
bevelEnabled: false,
|
|
bevelSegments: 1,
|
|
steps: 5,
|
|
bevelThickness: 1
|
|
}
|
|
var extrude_geometria = new THREE.ExtrudeGeometry(forma_figura, datos_extrucion);
|
|
// la malla
|
|
var malla_extrucion = new THREE.Mesh(extrude_geometria);
|
|
|
|
// agregamos un material para que el punto tenga color
|
|
Material = new THREE.ParticleBasicMaterial({color:0XFF0000});
|
|
|
|
// creamos una partícula con la geometría y el material
|
|
Figura = new THREE.Line(Geometria,Material);
|
|
|
|
// agregamos la partícula al escenario
|
|
Escenario.add(Figura);
|
|
Escenario.add(malla_extrucion);
|
|
}
|
|
|
|
function crear_plano(){
|
|
//Geometria del plano
|
|
geometria_plano= new THREE.PlaneGeometry(100, 100, 10, 10);
|
|
// Textura
|
|
textura_plano = new THREE.ImageUtils.loadTexture("texturas/cesped.jpg");
|
|
textura_plano.wrapS = textura_plano.wrapT = THREE.RepeatWrapping;
|
|
textura_plano.repeat.set(10,10);
|
|
|
|
//Material
|
|
material_plano = new THREE.MeshBasicMaterial({map: textura_plano, side: THREE.DoubleSide})
|
|
|
|
// El plano (territorio)
|
|
territorio = new THREE.Mesh(geometria_plano, material_plano);;
|
|
territorio.rotation.x = Math.PI/2;
|
|
Escenario.add(territorio);
|
|
}
|
|
|
|
function animacion(){
|
|
requestAnimationFrame(animacion);
|
|
render_modelo();
|
|
}
|
|
|
|
function render_modelo(){
|
|
//Figura.rotation.y += 0.01
|
|
Render.render(Escenario,Camara);
|
|
}
|
|
|
|
/************** Llamadas a las funciones *************/
|
|
inicio();
|
|
animacion();
|
|
|
|
</script>
|
|
|
|
</body>
|
|
|
|
</html>
|