首页 > 其他分享 >Three.js教程:threejs语法总结

Three.js教程:threejs语法总结

时间:2023-06-30 09:55:22浏览次数:49  
标签:threejs console log material Three js transparent 属性

推荐:将NSDT场景编辑器加入你的3D工具链
其他系列工具:NSDT简石数字孪生

threejs语法总结

本节课从JavaScript面向对象语法的角度,给大家总结下threejs API的使用习惯,这样方便大家更好的使用threejs API。

Three.js语法总结:类(构造函数)

Three.js提供了各种各样的类(构造函数),通过new关键字可以实例化类(构造函数),获得一个对象,对象具有属性和方法。

// new实例化类THREE.MeshLambertMaterial,创建一个材质对象
const material = new THREE.MeshLambertMaterial();
// 可以看到材质对象的属性color、side、opacity、transparent...
// 通过属性可以看到threejs默认的属性值
console.log('查看材质对象',material);
// 查看材质默认属性值
console.log('material.color',material.color);
console.log('material.side',material.side);
console.log('material.transparent',material.transparent);
console.log('material.opacity',material.opacity);

类(构造函数)的参数设置属性

通过类(构造函数)的参数设置属性

const material = new THREE.MeshLambertMaterial({
    color: 0x00ffff, 
    side:THREE.DoubleSide,
    transparent:true,
    opacity:0.5,
});

查看选项参数设置的材质属性值,可以和原来默认属性值对比

console.log('material.color',material.color);
console.log('material.side',material.side);
console.log('material.transparent',material.transparent);
console.log('material.opacity',material.opacity);

访问对象属性改变属性的值

// 访问对象属性改变属性的值
material.transparent = false;
material.opacity = 1.0;
console.log('directionalLight',ambient.intensity);
directionalLight.intensity = 0.1;//改变光源强度

父类和子类

如果你学习过JavaScript面向对象,应该有父类和子类的概念,子类是通过父类派生出来的,会继承父类的属性或方法。

  • 环境光、平行光源的父类Light
  • mesh、light光源的父类Object3D

如果你想通过文档查询一个类的方法或属性,除了可以查询类本身,还可以查询类的父类。

通过对象的方法改变对象的属性

console.log('模型位置属性',mesh.position);
mesh.position.x = 50;//访问属性改变位置x坐标
mesh.translateX(50);//执行方法改变位置属性
3D建模学习工作室    

上一篇:Three.js教程:gui.js库(分组) (mvrlink.com)

下一篇:Three.js教程:几何体顶点位置数据和点模型 (mvrlink.com)

标签:threejs,console,log,material,Three,js,transparent,属性
From: https://www.cnblogs.com/mvrlink/p/17515810.html

相关文章

  • Nodejs模块化
    Nodejs模块化ECMAScript标准的缺陷没有模块系统标准库较少没有标准接口缺乏管理系统如果程序设计的规模达到了一定程度,则必须对其进行模块化,模块化可以有多种形式,但至少应该提供能够将代码分割为多个源文件的机制。CommonJS的模块功能可以帮我们解决该问题。Nodejs实现......
  • js遇到的小问题
    js笔记apollo.is_execute=apollo.is_execute?1:0;把true或者false转化为1或者0或者有值的时候是1,没有值的时候是0true转化为1,为false的0!db.execution_condition判断为空或者为undefind......
  • eggjs连接MySQL数据库
     前言:eggjs连接MySQL数据库,我摸索了各种方式。下面这篇文章能正确链上。 我犯过的几个错误:1,config/plugin.js中我填写错误,这是最致命的,导致直接读不到MySQL。官方文档不靠谱,如下所示//config/plugin.jsexports.mysql={  enable:true,  package:'egg-mysql',};......
  • js格式化时间
    lettimeFormatSeconds=function(time){ letd=time?newDate(time):newDate(); letyear=d.getFullYear(); letmonth=d.getMonth()+1; letday=d.getDate(); lethours=d.getHours(); letmin=d.getMinutes(); ......
  • JS sort排序方法
    Array.prototype.sort()sort()方法就地对数组的元素进行排序,并返回对相同数组的引用。默认排序是将元素转换为字符串,然后按照它们的UTF-16码元值升序排序。由于它取决于具体实现,因此无法保证排序的时间和空间复杂度。尝试一下constmonths=['March','Jan','Feb','Dec'......
  • js原生方法:获取某个元素所处屏幕的位置,input输入框中文输入时的调用
    span.getBoundingClientRect()会返回改元素的位置信息//输入框内容改变functioninputSearchChange(){//如果是拼音输入,则会进入这个监听inputSearch.addEventListener('compositionstart',()=>{lastInputValue=inputSearch.valueisPinyin=true}......
  • JSTL-foreach
     <%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%><%@pagecontentType="text/html;charset=UTF-8"language="java"%><!DOCTYPEhtml><htmllang="en"><head>......
  • js小练习
    写一个函数,计算两个数字的和functionadd(a,b){console.log(a+b)}add(2,3)判断一个数字是否是偶数functionouShu(a){if(a%2===0){console.log(a+'是偶数')}else{console.log(a+'是奇数')}}ouShu(155)找出一个数组中的最大值并......
  • js随笔
    JavaScript(缩写:JS)是一门完备的动态编程语言。当应用于HTML文档时,可为网站提供动态交互特性。由布兰登·艾克(BrendanEich,Mozilla项目、Mozilla基金会和Mozilla公司的联合创始人)发明。JavaScript的应用场合极其广泛,简单到幻灯片、照片库、浮动布局和响应按钮点击,复杂到游戏......
  • C# 序列化大小写 序列化对象为大小写 JsonConvert.SerializeObject
    关于C#序列化Json对象框架:.Net插件:Newtonsoft.Json最近有人问我序列化对象还区分大小写?我当时心想我都是通过Bejson格式化然后转换为C#类然后直接复制。没有关心过序列化成什么大小写。因为这样的话可以保持一致。直到有人问我才自己研究了一下。如下:usingNewtonsoft.......