话不多说,请看代码:

可以拖动右上角观察变化
<!DOCTYPE html>
<html lang="en" style="width: 100%; height:100%;">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="http://cdn.bootcss.com/three.js/r83/three.min.js"></script>
<script src="http://cooklife.cn/html/node_modules/dat.gui/build/dat.gui.min.js"></script>
</head>
<body onload="threeExcute()" style="width: 100%; height:100%;">
<div id="box"></div>
</body>
<!-- Three.js的核心五步就是:
1.设置three.js渲染器
2.设置摄像机camera
3.设置场景scene
4.设置光源light
5.设置物体object
-->
<script>
// 1.设置three.js渲染器
var renderer;
function initThree(){
width = document.getElementById("box").clientWidth;
height = document.getElementById("box").clientHeight;
renderer = new THREE.WebGLRenderer({
antialias:true
});/*生成渲染器对象(属性:抗锯齿效果为设置有效)*/
renderer.setSize(width,height);
document.getElementById("box").appendChild(renderer.domElement);
/*设置canvas背景色(clearColor)和背景色透明度(clearAlpha) */
renderer.setClearColor(0xFFFF00,1.0);
}
// 2.设置摄像机camera
var camera;
function initCamera(){
camera = new THREE.PerspectiveCamera(45,width/height,1,10000);
camera.position.x = 1000;
camera.position.y = 1000;
camera.position.z = 1000;
camera.up.x = 0;
camera.up.y = 0;
camera.up.z = 100;
camera.lookAt({x:0,y:0,z:0}); //设置视野的中心坐标
}
// 3.设置场景
var scene;
function initScene(){
scene = new THREE.Scene();
}
// 4.设置光源light
var light;
function initLight(){
light = new THREE.DirectionalLight(0xFF00FF, 1.0, 0); //平行光
light.position.set(100,100, 200); //设置光源位置
scene.add(light); //将官员添加到场景
}
//5.设置物体
var sphereMesh;
var cubeMesh;
var cubeMesh2;
var cubeMesh3;
var cubeMesh4;
var cubeMesh5;
var cubeMesh6;
function initObject(){
cubeMesh = new THREE.Mesh(new THREE.BoxGeometry(80,80,80),new THREE.MeshLambertMaterial({color:0xff0000})/*
设置球体的材质*/);
cubeMesh2 = new THREE.Mesh(new THREE.BoxGeometry(80,80,80),new THREE.MeshLambertMaterial({color:0xff0000})/*
设置球体的材质*/);
cubeMesh3 = new THREE.Mesh(new THREE.BoxGeometry(80,80,80),new THREE.MeshLambertMaterial({color:0xff0000})/*
设置球体的材质*/);
sphereMesh = new THREE.Mesh(new THREE.SphereGeometry(200,200,200),new THREE.MeshLambertMaterial({color:0xff00FF})/*设置球体的材质*/); //材质设定
sphereMesh.position.set(0,0,0); /*设置物体位置*/
cubeMesh2.position.set(400,0,0);
cubeMesh.position.set(390,150,0);
cubeMesh3.position.set(380,100,0);
/*
* 旋转要点。。。
*/
var pivotPoint = new THREE.Object3D();
pivotPoint.add(cubeMesh);
pivotPoint.add(cubeMesh2);
pivotPoint.add(cubeMesh3);
sphereMesh.add(pivotPoint);
scene.add(sphereMesh);
sphereMesh.name = 'cube'
}
control = new function () {
this.rotationSpeedX = 0.001;
this.rotationSpeedY = 0.001;
this.rotationSpeedZ = 0.001;
};
function addController(){
var gui = new dat.GUI();
gui.add(control, 'rotationSpeedX', -0.2, 0.2);
gui.add(control, 'rotationSpeedY', -0.2, 0.2);
gui.add(control, 'rotationSpeedZ', -0.2, 0.2);
}
function render(){
renderer.render(scene, camera);
scene.getObjectByName('cube').rotation.x += control.rotationSpeedX;
scene.getObjectByName('cube').rotation.y += control.rotationSpeedY;
scene.getObjectByName('cube').rotation.z += control.rotationSpeedZ;
requestAnimationFrame(render);
}
function threeExcute(){
initThree();
initCamera();
initScene();
initLight();
initObject();
renderer.clear();
addController();
render();
}
</script>
<style type="text/css">
div#box{
border: none;
cursor: move;
width: 100%;
height: 100%;
background-color: #EEEEEE;
}
</style>
</html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# three.js
# three.js中3D视野的缩放实现代码
# three.js实现3D视野缩放效果
# vue+threejs写物体动画之物体缩放动画效果
# three.js设置物体的缩放和旋转代码示例
# 渲染器
# 背景色
# 拖动
# 多说
# 五步
# 抗锯齿
# scene
# camera
# box
# body
# build
# gui
# onload
# id
# div
# threeExcute
# clientHeight
# clientWidth
# getElementById
# WebGLRenderer
相关文章:
建站主机空间推荐 高性价比配置与快速部署方案解析
如何快速搭建支持数据库操作的智能建站平台?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
青岛网站建设如何选择本地服务器?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
C++如何使用std::optional?(处理可选值)
历史网站制作软件,华为如何找回被删除的网站?
如何在云主机快速搭建网站站点?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
如何在橙子建站中快速调整背景颜色?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
网站制作难吗安全吗,做一个网站需要多久时间?
*服务器网站为何频现安全漏洞?
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
文字头像制作网站推荐软件,醒图能自动配文字吗?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
制作电商网页,电商供应链怎么做?
深圳网站制作平台,深圳市做网站好的公司有哪些?
电商网站制作价格怎么算,网上拍卖流程以及规则?
h5在线制作网站电脑版下载,h5网页制作软件?
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
h5网站制作工具有哪些,h5页面制作工具有哪些?
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
建站之星导航配置指南:自助建站与SEO优化全解析
高端云建站费用究竟需要多少预算?
如何通过虚拟机搭建网站?详细步骤解析
建站主机选购指南与交易推荐:核心配置解析
如何快速搭建高效服务器建站系统?
江苏网站制作公司有哪些,江苏书法考级官方网站?
建站之星各版本价格是多少?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
如何在宝塔面板中创建新站点?
如何在服务器上配置二级域名建站?
再谈Python中的字符串与字符编码(推荐)
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
魔方云NAT建站如何实现端口转发?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
如何在阿里云高效完成企业建站全流程?
如何快速查询网址的建站时间与历史轨迹?
网站制作企业,网站的banner和导航栏是指什么?
济南专业网站制作公司,济南信息工程学校怎么样?
建站168自助建站系统:快速模板定制与SEO优化指南
PHP正则匹配日期和时间(时间戳转换)的实例代码
香港服务器WordPress建站指南:SEO优化与高效部署策略
*请认真填写需求信息,我们会在24小时内与您取得联系。