iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >基于three.js怎么实现简易照片墙效果
  • 786
分享到

基于three.js怎么实现简易照片墙效果

2023-06-29 23:06:29 786人浏览 泡泡鱼
摘要

本篇内容主要讲解“基于three.js怎么实现简易照片墙效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于three.js怎么实现简易照片墙效果”吧!代码: <!DOCTYP

本篇内容主要讲解“基于three.js怎么实现简易照片墙效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于three.js怎么实现简易照片墙效果”吧!

代码:

 <!DOCTYPE html><HTML><HEAD>    <META charset="utf-8">    <META name="viewport" content="width=device-width, user-Scalable=no, minimum-scale=1.0, maximum-scale=1.0">    <TITLE></TITLE>    <STYLE>        html, body {            height: 100%;        }         body {            background-color: #454545;            margin: 0;            overflow: hidden;            background-size:cover;        }         .element {            width: 240px;            height: 320px;        }         .element img {            position: absolute;            border:none;        }     </STYLE>  </HEAD><BODY> <script src="js/Jquery-3.1.1.min.js"></script> <script src="js/jquery.mousewheel.min.js"></script> <SCRIPT src="js/three.min.js"></SCRIPT> <SCRIPT src="js/css3DRenderer.js"></SCRIPT> <DIV id="container"></DIV> <DIV id="menu">     <SCRIPT>        var table = [];         var camera, scene, renderer;         createImages();        init();        animate();         function init() {            camera = new THREE.PerspectiveCamera( 40, window.innerWidth / window.innerHeight, 1, 10000 );            camera.position.x = 0;            camera.position.y = 0;            camera.position.z = 3000;            camera.lookAt({                x : 0,                y : 0,                z : 0            });             scene = new THREE.Scene();             for ( var i = 0; i < table.length ; i ++ ) {                var element = document.createElement( 'div' );                element.className = 'element';                element.id = 'element';                 var photo = document.createElement('img');                photo.className = 'photo';                photo.id = table[ i ][0];                photo.src='images/'+table[ i ][0]+'?t='+Math.floor((Math.random()*100)+1);                 element.appendChild( photo );                 var objectCSS = new THREE.CSS3DObject( element );                objectCSS.position.x = ( table[ i ] [1] * 250 ) - 1750;                objectCSS.position.y = - ( table[ i ] [2]* 330 ) + 1200;                objectCSS.position.z = 0;                scene.add( objectCSS );            }             renderer = new THREE.CSS3DRenderer();            renderer.setSize( window.innerWidth, window.innerHeight );            renderer.domElement.style.position = 'absolute';            document.getElementById( 'container' ).appendChild( renderer.domElement );             window.addEventListener( 'resize', onWindowResize, false );        }         function onWindowResize() {             camera.aspect = window.innerWidth / window.innerHeight;            camera.updateProjectionMatrix();             renderer.setSize( window.innerWidth, window.innerHeight );         }         function animate() {             renderer.render( scene, camera );            requestAnimationFrame( animate );         }         $(window).mousewheel(function(event) {            camera.position.y -= event.deltaY * event.deltaFactor;            camera.position.z = 3000;             var target = new THREE.Vector3();            var _eye = new THREE.Vector3();             _eye.subVectors( camera.position, target );            camera.position.addVectors( target, _eye );            camera.lookAt( _eye );         });         function createImages (){            var files = [                {"name":"0.jpg"},                {"name":"1.jpg"},                {"name":"2.jpg"}            ];            var row =1;            var col = 1;            for(var i = 0; i < files.length;i++)            {                var file = [];                file[0] = files[i]['name'];                file[1] = col++;                file[2] = row;                table[i] = file;                if(col > 13)                {                    col = 1;                    row++;                }            }        }      </SCRIPT></DIV></BODY></HTML>

效果图如下:

基于three.js怎么实现简易照片墙效果

到此,相信大家对“基于three.js怎么实现简易照片墙效果”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 基于three.js怎么实现简易照片墙效果

本文链接: https://www.lsjlt.com/news/326722.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c++中ifdef的用法
    c++ 中的 #ifdef 预处理器指令用于根据预定义宏是否存在来编译或不编译代码块。它的语法是 #ifdef ,其作用包括:检查宏是否存在,如果宏已定义,则编译其后的代码块;实现条件编...
    99+
    2024-05-14
    c++
  • c++中的函数调用有哪几种方式?它们有什么区别
    c++ 中的函数调用方式有 4 种:值传递(复制实参值,不影响实参)、引用传递(传递实参地址,修改形参值会修改实参)、指针传递(传递实参指向的内存地址,修改指向的值会影响实参)、rval...
    99+
    2024-05-14
    c++
  • c++中string和char有什么区别
    字符串与字符数组 回答:在 C++ 中,字符串 (string) 和字符数组 (char[]) 是两种不同的数据类型,用于存储和处理文本数据。 详细说明: 1. 数据结构 字符串:字...
    99+
    2024-05-14
    c++ 标准库
  • c++中log函数怎么写
    c++++ 中的 log 函数 C++ 中的 log 函数用于计算一个数字的对数。对数是一种数学运算,用于计算一个数字被另一个数字(称为基数)提升到多少次才能得到给定结果。 语法 dou...
    99+
    2024-05-14
    c++ 标准库
  • c++中log函数的底数可以是变量吗
    c++ 中的 log 函数底数可否使用变量?是。logb 函数可用于计算以指定底数为基数的对数,例如 logb(100, 10) 计算以 10 为底的 100 的对数,结果为 2。 C...
    99+
    2024-05-14
    c++
  • c和c++中static的区别
    static 在 c 和 c++ 中的区别包括:作用域:c 中仅限于文件,c++ 可为文件或类作用域;链接:c 中仅链接到所在文件,c++ 中链接到整个程序;初始化:c 中默认为 0,c...
    99+
    2024-05-14
    c++ 作用域
  • c++中define是什么意思
    c++ 中 define 指令用于预编译时将标识符替换为文本常量。其优点包括:提高代码可读性和可维护性。增强代码可移植性。在某些情况下优化代码性能。 C++ 中 define defi...
    99+
    2024-05-14
    c++ 代码可读性
  • c++中int和double有什么区别
    int 和 double 是 c++ 的数据类型,用于表示整数和浮点数。它们的关键区别在于:1. 范围:int 为整数,double 为浮点数且范围更大;2. 存储大小:int 占 4 ...
    99+
    2024-05-14
    c++ 隐式转换
  • C++ 多线程程序测试的挑战和策略
    多线程程序测试面临不可重复性、并发错误、死锁和缺乏可视性等挑战。策略包括:单元测试:针对每个线程编写单元测试,验证线程行为。多线程模拟:使用模拟框架在控制线程调度的情况下测试程序。数据竞...
    99+
    2024-05-14
    c++ 多线程
  • c++中深拷贝和浅拷贝的应用时间
    浅拷贝复制对象指针或引用,仅适用于不含动态分配内存或简单数据结构的对象;深拷贝复制实际数据,包括动态分配内存,适用于包含动态分配内存或复杂数据结构的对象。 浅拷贝和深拷贝的应用时间 在...
    99+
    2024-05-14
    c++
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作