ThreeJS
轻量级开源的JavaScript 3D引擎,传播最广泛的WebGL三维引擎。对WebGL底层的东西进行了封装,让非计算机图形学领域的人也可以实现三维世界 WebGL从应用的角度看,在不同领域差别也比较大。对机械而言更多是侧重于建模,工业设计除了建模外,还要进行仿真渲染,游戏的角色模型更侧重于柔性的人
sichuanwww
VegaPrime/Android/LabWindows/Python/ThreeJS
展开
-
ThreeJS部件装配
子物体首先几何中心归于原点,测量其尺寸,得其装配点1的数据数据(0.02,-0.08,-0.2328)。父物体首先几何中心归于原点,然后测量出装配点1,其数据为(0.15,0.00,0.168);//子物体位置为其装配点的数据的相反数。旋转时,需要区分所绕的数轴,下图为绕。的位置,其数据为父物体安装点数据。4 三个点计算圆心的代码。原创 2024-01-22 21:10:28 · 493 阅读 · 0 评论 -
ThreeJS中使用AJAX实现多用户交互2
1 调试环境是Win7/10 IIS 后台采用VS2008, C# 后台采用无界面程序,直接在page_load里面处理数据,为了多个客户端共享数据,采用asp.net里面的Application["posX"]的方式存储共享数据,其实可以有更多的方式,比如XML文件,数据库等。using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web...原创 2020-12-25 23:17:45 · 728 阅读 · 4 评论 -
ThreeJS中使用AJAX实现多用户交互
1 调试环境是Win7 IIS 后台采用VS2008, C# 后台采用无界面程序,直接在page_load里面处理数据,收取到的数据简单加1操作using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;public partial class _Default :...原创 2020-12-24 15:54:52 · 875 阅读 · 0 评论 -
IIS中运行threejs的配置
1 首先正确安装IIS2 在项目的web.config文件中添加以下内容<system.webServer> <defaultDocument> <files> <add value="default.aspx" /> </files> </defaultDocument> <httpProtocol> <customHe..原创 2020-12-23 16:39:47 · 708 阅读 · 0 评论 -
ThreeJS计算物体包围盒尺寸
计算图形包围盒尺寸。 function computeScale(geometry) { geometry.computeBoundingBox(); var maxX = geometry.boundingBox.max.x; var minX = geometry.boundingBox.min.x; var maxY = geometry.boundingBox.max.y; var minY = geometry.boundingBox.min.y;原创 2020-12-17 09:36:04 · 3565 阅读 · 0 评论 -
canvas基本操作
创建一个画布(Canvas)一个画布在网页中是一个矩形框,通过 <canvas> 元素来绘制.注意:默认情况下 <canvas> 元素没有边框和内容。<canvas>简单实例如下:<canvas id="myCanvas" width="200" height="100"></canvas>注意:标签通常需要指定一个id属性 (脚本中经常引用), width 和 height 属性定义的画布的大小.提示:你可以在HTML..原创 2020-12-16 15:38:02 · 1802 阅读 · 0 评论 -
Stats和dat.GUI的位置控制及使用
1 引入必要的源文件src,实际位置需认真确认 <scripttype="text/javascript"src="threejsmaster/build/js/libs/dat.gui.min.js"></script><scripttype="text/javascript"src="threejsmaster/build/js/libs/stats.min.js"></script>2 位置控制 本...原创 2020-12-16 11:09:33 · 1900 阅读 · 0 评论 -
ThreeJS中的EdgesGeometry的使用
1 首先看看效果 X坐标平移了一个单位后的效果,效果良好。但也有一个问题,如果图形结构比较复杂,也就是顶点较多的情况下,会影响帧率,实验结果是帧率从60直接降到了15。2THREE.EdgesGeometry具体参数可以查询相关资料,直接上代码,其中的boundingBox和selectedObject都是全局变量,配合鼠标点选功能完成。其中对位置、缩放、旋转都取了选中对象的原始值,否则会出现偏差(没有及时更新?没搞明白)。因为这段代码是放在渲染函数中的,有些局部变量可...原创 2020-12-16 10:31:35 · 1875 阅读 · 0 评论 -
threejs精灵Sprite
Sprite叫精灵,计算机图形学中,精灵指包含于场景中的二维图像或动画。主要用来做标签,因为精灵模型的正面一直平行于canvas画布。1使用Sprite创建2D形状Sprite叫精灵,计算机图形学中,精灵指包含于场景中的二维图像或动画。在threejs中,可以使用Sprite加载图像纹理,当然也包括用canvas创建的纹理,因此,canvas能创建什么图像,Sprite就能创建什么形状。下面的例子使用Sprite创建了一个圆:function createSpriteShape(){ ..原创 2020-12-14 10:53:27 · 3407 阅读 · 0 评论 -
VSCODE+NODEJS搭建ThreeJS编辑环境
1 安装vscode,为了方便,可以设置成中文 2 安装NODE.JS,最新版本在Win7上安装不上,可以找一个老版本,主要是为了安装npm 我在win7下的下载地址:https://nodejs.org/dist/latest-v4.x/ windows当然用然后一路next安装就可以了,我是安装在了 D:\nodejs 目录下3 打开VSCODE中,先选择打开安装nodejs的目录D:\nodejs文件---...原创 2020-12-11 10:10:40 · 4442 阅读 · 0 评论 -
ThreeJS点选物体后div标签动态跟随
1 解决标签点的包含关系 <div id="WebGLwxp" align="center"> <div id="notice"></div> </div> notice是用来显示动态信息的div, WebGLwxp是渲染场景的div2 首先解决鼠标点选问题 参考鼠标点选解决方案3 然后解决三维坐标点转换为二维坐标点问题 //三维坐标转屏幕坐标 function ...原创 2020-12-10 15:18:47 · 2377 阅读 · 0 评论 -
TubeGeometry管道绘制
//创建管道成型的路径(3D样条曲线)var path = new THREE.CatmullRomCurve3([ new THREE.Vector3(-5, 0, 1), new THREE.Vector3(0, 5, 1), new THREE.Vector3(5, 0, 1), new THREE.Vector3(0,0, 0) ]); // path:路径 ...原创 2020-12-09 16:08:12 · 531 阅读 · 0 评论 -
ThreeJS中的纹理Texture操作
1 纹理支持png gif jpeg格式,最好是正方形图片,最好是长度和宽度都是2的整数次方大小2 可以在材质中加载纹理,在Material的map属性中加载,一般就不设置颜色了。 var tture = new THREE.ImageUtils.loadTexture("aa.png");var material = new THREE.MeshBasicMaterial({map: tture});tture.wrapS = THREE.RepeatWrapping;...原创 2020-12-08 10:03:49 · 3718 阅读 · 0 评论 -
ThreeJS的层次结构模型
1 基本元素模型2 层次结构模型场景对象对象scene构成的层级模型本身是一个树结构,场景对象层级模型的第一层,也就是树结构的根节点,一般来说网格模型Mesh、点模型Points、线模型Line是树结构的最外层叶子结点。构建层级模型的中间层一般都是通过Threejs的Group类来完成,Group类实例化的对象可以称为组对象。Threejs渲染的时候从根节点场景对象开始解析渲染,如果一个模型要想被渲染出来就要直接或间接插入到场景scene中,一个光源如果要在光照计算中起作用同...原创 2020-12-07 19:32:05 · 1577 阅读 · 0 评论 -
stl加载器STLLoader
1 加载文件:(确认本地的文件路径) <script type="text/javascript" src="threejsmaster/build/js/loaders/STLLoader.js"></script>2 加载方法: var loader = new THREE.STLLoader(); var stlFileName=new String("NDG2_160.stl"); loader.load( stlFileName, fun...原创 2020-12-07 14:40:04 · 1746 阅读 · 0 评论 -
常见材质选择material
1 普通材质:MeshLambertMaterial,不受关照影响var cubeGeometry = new THREE.BoxGeometry(1, 1, 1);var cubeMaterial = new THREE.MeshLambertMaterial({ color: 0xff0000,opacity:0.5,transparent:true });cube = new THREE.Mesh(cubeGeometry, cubeMaterial); //物体=几何体+材质...原创 2020-12-06 20:14:45 · 378 阅读 · 0 评论 -
ThreeJS键盘和鼠标函数设置
//相机视角 var fov=45; var mouseDownX=0; var mouseMoveX=0; //----------------------------------------- //键盘函数 function WxpKeyPressed(e) { var key = event.keyCode; switch ..原创 2020-12-05 20:14:59 · 607 阅读 · 0 评论 -
ThreeJS模块化设计
为了便于复用,对ThreeJS的整体程序进行模块化设计: 1 全局变量设计:包括必要的全局变量以及可能用到的全局变量; 2 键盘函数设计: 键盘函数 ,function WxpKeyPressed(e),完成键盘控制功能 3 仿真场景基本设计: 仿真场景基本配置函数,function WxpInitScene(),场景、相机、灯光、键盘挂靠等设计,以及系统坐标、网格线设计等 4 物体加载设计:...原创 2020-12-05 17:01:53 · 361 阅读 · 0 评论 -
ThreeJS自带网格线
Threejs里通过AxesHelper 类,可以创建一个可视化的三维坐标系--------------------------------------------通过 Three.js 类 GridHelper 可以创建一个坐标网格对象GridHelper 本质上是对线模型对象 Line 的封装,纵横交错的直线构成一个矩形网格模型对象。GridHelper( size :number, divisions :Number, colorCenterLine :Color, col...原创 2020-12-04 15:37:52 · 3292 阅读 · 1 评论 -
ThreeJS基本坐标设置
1 绘制基本的场景面板,XY平面绘制网格线,建立起基本的坐标。左右为为X轴,右为正;前后为Y轴,前为正;山下为Z轴,上为正。2 ThreeJS中的点对象,比如:默认都用camera.lookAt(scene.position);其实,也可以自己修改:camera.lookAt(new THREE.Vector3(0, 0, 0));3 线条绘制: var geometryX = new THREE.Geometry(); geometryX...原创 2020-12-04 11:15:16 · 4471 阅读 · 0 评论 -
dat.GUI简单实例
Dat.gui 使用教程:Dat.gui 是一个 GUI 组件,他可以为你的 demo 提供参数的设置。并且很容易上手。基础用法引入js 文件 (这个要根据实际存储位置来确定)<script type="text/javascript" src="https://raw.github.com/dataarts/dat.gui/master/build/dat.gui.min.js"></script>初始化配置var Options = function()原创 2020-12-03 21:59:56 · 763 阅读 · 0 评论 -
ThreeJS相机camera位置属性
开始很懵,完全不能理解,有个position,还要up和lookAt干嘛。既然是位置属性不明白,那默认其它属性都懂了。上坐标轴:先来第一个position属性,可以设置xyz。假设设置y为 1000position(0,1000,0);相机的位置是下图:单独设置xz轴都和以上类似,位置z或者x轴某个位置。那lookAt,字面上的意思就是,看向哪里。相机默认是由正z轴看像-z轴(相机镜头对着-z轴方向拍),就是我们由屏幕外向屏幕内看一样。camera.l...原创 2020-12-03 16:13:34 · 3563 阅读 · 1 评论 -
threejs的最基本运行框架
//在开发设计之前,我把js目录拷贝到了build目下;也就是D:\phpstudy_pro\WWW\threejsmaster\build目录内容:<html lang="en"><head> <title>第一个three.js文件三维场景</title> <style type = "text/css" > body { margin: 0; overflow : hidden;原创 2020-11-28 21:20:40 · 812 阅读 · 0 评论 -
学习ThreeJS前的环境配置
工具:1.【three.js源码】:下载地址:https://threejs.org/2.【phpStudy】:用于存放three.js源码,作为本地的开发服务器。(也可用:wamp,xampp等)3.【sublimeText 3】:用于编写代码。(也可用DW,visual studio Code ,webstorm等)步骤:1.phpStudy下载后解压安装。安装完成后启动服务。如下:2.去three.js的官网https://threejs.org/下载源码包。3..原创 2020-11-28 10:45:54 · 723 阅读 · 0 评论 -
ThreeJS介绍
three.js官网 相关链接 documentation:帮助手册,three.js引擎所有的对象及其方法和属性的语法格式,初学查询,开发字典 examples:大量案例,可以参考学习 download:下载文件,three.js引擎文件 editor:简单可视化图形编辑器,可以类比各种三维建模、渲染软件轻量级开源的JavaScript 3D引擎,传播最广泛的WebGL三维引擎。对WebGL底层的东西进行了封装,让非计算机图形学领域的人也可以实现三维世界 WebGL从应用的角度看,在不..翻译 2020-11-28 10:33:44 · 527 阅读 · 1 评论