Bienvenida

BINVENIDO A GADGETS KIRADOBERMAN

Ultimas entradas

Entrada Destacada

PÁGINA DE BIENVENIDA

Cubo 3D con el Logo de tu Web

diciembre 07, 2017

CUBO 3D CON EL LOGO DE TU WEB


Vamos a ver una original manera de presentar el logo de tu blog o web o la imagen que desees transformandola en un cubo 3D. ¿Como conseguimos este efecto? Pues con la libreria three.js, utilizada por desarrolladores de juegos y animadores, ya que con ella se pueden crear increibles animaciones utilizando para ello simplemente Javascript y HTML5. Para que veais como queda, he puesto esta imagen que veis a la derecha y aqui abajo teneis el resultado. La imagen aparece por los seis lados del cubo y pasando el cursor del raton por encima podemos rotarlo en todas las direcciones posibles.


Si quieres añadirlo en tu blog o web, copia el siguiente codigo y pegalo donde quieras mostrar el cubo. Sustituye URL IMAGEN (en color rojo) por la dirección URL de la imagen que quieras poner.




<div id="container"></div>
<script src="https://sites.google.com/site/redeando1/cubotresd.js"></script>
<script src="https://sites.google.com/site/redeando1/cubotresd2.js"></script>
<script>
var container, stats;
   var camera, scene, renderer;
   var group;
   var mouseX = 0, mouseY = 0;

   var windowHalfX = window.innerWidth / 2;
   var windowHalfY = window.innerHeight / 2;

   init();
   animate();

   function init() {

    container = document.getElementById( 'container' );

    camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 1, 10000 );
    camera.position.z = 500;

    scene = new THREE.Scene();

    group = new THREE.Object3D();
    scene.add( group );

    // earth

    var earthTexture = new THREE.Texture();
    var loader = new THREE.ImageLoader();

    loader.addEventListener( 'load', function ( event ) {

     earthTexture.image = event.content;
     earthTexture.needsUpdate = true;

    } );

    loader.load( 'URL IMAGEN' );

    var geometry = new THREE.CubeGeometry( 200, 200, 200 );
    var material = new THREE.MeshBasicMaterial( { map: earthTexture, overdraw: true } );

    var mesh = new THREE.Mesh( geometry, material );
    group.add( mesh );

    // shadow

    var shadowTexture = new THREE.Texture();
    var loader = new THREE.ImageLoader();

    loader.addEventListener( 'load', function ( event ) {

     shadowTexture.image = event.content;
     shadowTexture.needsUpdate = true;

    } );

    loader.load( '' );

    var geometry = new THREE.PlaneGeometry( 400, 400, 3, 3 );
    var material = new THREE.MeshBasicMaterial( { map: shadowTexture, overdraw: true } );

    var mesh = new THREE.Mesh( geometry, material );
    mesh.position.y = - 250;
    mesh.rotation.x = - Math.PI / 2;
    group.add( mesh );

    renderer = new THREE.CanvasRenderer();
    renderer.setSize( window.innerWidth, window.innerHeight );

    container.appendChild( renderer.domElement );

    stats = new Stats();
    stats.domElement.style.position = 'absolute';
    stats.domElement.style.top = '0px';
 
    document.addEventListener( 'mousemove', onDocumentMouseMove, false );

    //

    window.addEventListener( 'resize', onWindowResize, false );

   }

   function onWindowResize() {

    windowHalfX = window.innerWidth / 2;
    windowHalfY = window.innerHeight / 2;

    camera.aspect = window.innerWidth / window.innerHeight;
    camera.updateProjectionMatrix();

    renderer.setSize( window.innerWidth, window.innerHeight );

   }

   function onDocumentMouseMove( event ) {

    mouseX = ( event.clientX - windowHalfX );
    mouseY = ( event.clientY - windowHalfY );

   }

   //

   function animate() {

    requestAnimationFrame( animate );

    render();
    stats.update();

   }

   function render() {

    camera.position.x += ( mouseX - camera.position.x ) * 0.05;
    camera.position.y += ( - mouseY - camera.position.y ) * 0.05;
    camera.lookAt( scene.position );

    group.rotation.y -= 0.002;

    renderer.render( scene, camera );

   }
</script>

Fuente:redeando.blogspot.com.es

Fecha:07/12/2017

Publicado por:  


You Might Also Like

0 comentarios

Paginacion

Etiquetas

aviso (1) blogger (35) cubi (1) featured (37) gadget (14) imagen (4) índice (1) marquesina (1) menú (13) posts (12) redes sociales (2) sliders (1) truco (6) widget (12)

Conyacto

Nombre

Correo electrónico *

Mensaje *