three.js初时基础

news2025/1/17 6:04:09

第一步:找到Three.js – JavaScript 3D Library (threejs.org)

第二步

 第三步:

第四步:

安装依赖 

 第五步:新建一个项目文件,在文件中npm init 进行初始化出现一个package.json

 第六步:配置安装🚀 快速开始 | Parcel中文网 (parceljs.cn)

 在package.json中配置

配置结果: 

 

package.json文件中的配置如下:

{

  "name": "threejs",

  "version": "1.0.0",

  "description": "",

  "main": "index.js",

  "scripts": {

    "dev": "parcel src/index.html",

    "build": "parcel build src/index.html"

  },

  "author": "",

  "license": "ISC",

  "dependencies": {

    "dat.gui": "^0.7.9",

    "gsap": "^3.11.3",

    "parcel-bundler": "^1.12.5",

    "three": "^0.146.0"

  },

  "devDependencies": {

    "parcel": "^2.8.0"

  }

}

 

文件创建:

 第七步:

 第八步:

dist是生产的源文件 

第九步:

main中的配置及详解:

import * as THREE from "three"

//导入轨道控制器

import{OrbitControls} from "three/examples/jsm/controls/OrbitControls"

//目标:3D物体的移动

const scene = new THREE.Scene();//创建一个场景

//创建相机    PerspectiveCamera 透视相机

const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );

// 设置相机位置

// 将几何体添加到场景中

//初始化渲染器

const renderer = new THREE.WebGLRenderer();

//设置渲染的尺寸大小

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

// 将webgl渲染的canvas内容添加到body

document.body.appendChild( renderer.domElement );

// 创建几何体

const geometry = new THREE.BoxGeometry( 1, 1, 1 );

// 颜色

const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );

//根据几何体和材质创建物体

const cube = new THREE.Mesh( geometry, material );

console.log("物体几何的位置",cube)

//修改物体的位置

// cube.position.set(5,0,0)//这个是方法

cube.position.x=3//这个是属性

scene.add( cube );

//创建轨道控制器 第一个参数是相机  第二个是渲染器

const controls = new OrbitControls(camera, renderer.domElement )

//添加坐标轴辅助器

const axesHelper = new THREE.AxesHelper( 5 );

// 红色代表 X 轴. 绿色代表 Y 轴. 蓝色代表 Z 轴.

scene.add( axesHelper );

function animate() {

  //判断x轴的属性等于5时,从0开始

  cube.position.x+=0.01

  if(cube.position.x>=5){//当x轴的属性等于5时从头开始

    cube.position.x=0

  }

  //下一帧再重新的渲染这个函数

  requestAnimationFrame( animate );

  // 开启局部旋转模式 旋转的距离x与y轴  鼠标的变化而变化

  //  cube.rotation.x += 0.01;

  //  cube.rotation.y += 0.01;

//使用渲染器,通过相机将场景渲染进来

  renderer.render( scene, camera );

}

//开始渲染一次 第一次

animate();

camera.position.z = 5;

入口文件index.html引入

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <meta http-equiv="X-UA-Compatible" content="IE=edge">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>Document</title>

  <link rel="stylesheet" href="../src/assets/css/style.css">

</head>

<body>

   <script src="../src/main/main.js" type="module"></script>

</body>

</html>

所有的文档均从官网下载后,运行找到

本地的loclhost:8080....地址,点击文档即可打开。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/23859.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QtAV环境配置

本文章主要是使用MSVC编译器&#xff0c;因为QtAV是依赖FFmpeg的&#xff0c;所以需要下载QtAV源码和QtAV-depends-windows-x86x64&#xff1b; 官网地址&#xff1a;http://www.qtav.org/ Github 地址&#xff1a;https://github.com/wang-bin/QtAV 1&#xff0c;解压 将文件…

产品生命周期(PLM)发展历程及技术核心分析指导

产品生命周期管理(Product Lifecycle Management&#xff0c;简称PLM)&#xff0c;是一种为企业产品全生命周期提供服务的软件解决方案&#xff0c;可以应用于在单一地点或分散在多个地点的企业内部&#xff0c;以及在产品研发领域&#xff0c;具有协作关系的企业之间&#xff…

windows 锁屏时执行某个程序

目录 前言 1 打开锁屏事件 2 创建任务计划程序 3 测试 前言 以windows10为例&#xff0c;这个功能的核心是使用windows自带的“任务计划程序”&#xff0c;可以帮助您实现触发器操作。 1 打开锁屏事件 默认情况下&#xff0c;锁屏事件并不会被系统记录&#xff0c;需要手动打…

vue3项目的创建、入口文件、全局方法、生命周期函数、setup中的生命周期函数使用、data的函数方式

文章目录1. 创建vue3项目1.1 基于webpack的工程创建1.2 通过vite来创建vue3项目vue3插件推荐1.3 通过npm init vue3创建项目2. vue3入口文件3. vue3中的全局方法修改4. vue3中封装全局方法5. vue3生命周期函数6. setup中生命周期使用7. data函数方式1. 创建vue3项目 1.1 基于w…

Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合

写在前面&#xff1a; 继续记录自己的SpringBoot学习之旅&#xff0c;这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客&#xff0c;详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用&#xff01; 3.5.4 消息 3.5.4.1 简述 消息发送方&#xff1a;…

力扣(LeetCode)29. 两数相除(C++)

快速乘 题解只使用了 intintint 。 万恶的 INT_MININT\_MININT_MIN&#xff0c;怎么处理&#xff1f;打不过就加入——被除数和除数转为负数计算 。 xxx 除以 yyy &#xff0c;等于从 xxx 中拿出若干个 yyy 。 从 xxx 中拿出 yyy 的数量&#xff0c;就是 xyx\div yxy 的商。 y…

Allegro差分自动添加回流地孔操作指导

Allegro差分自动添加回流地孔操作指导 Allegro自带给差分添加回流地孔的功能,具体操作如下 点击connect命令,任意拉一对差分 鼠标右击,选择Return Path。。。,选择settings 会弹出设置的对话框,Assign net name给孔分配一个网络,一般是GND, Return Path via 选择添加…

2019年1+X 证书 Web 前端开发中级理论考试题目原题+答案——第五套

&#x1f4da;文章目录 &#x1f3af;关于1X标准 &#x1f3af;关于中级考点 ⏩&#x1f4bb;答案速查 理论题(满分100分)&#xff0c;包括单选题、多选题、判断题。 &#x1f4d1;一、单选题&#xff08;每小题2分&#xff0c;共30小题&#xff0c;共60分&#xff09; &…

Docker的基础命令

1.查找可用的镜像 docker search 镜像名 例&#xff1a;docker search nginxdocker search mysql2.拉取官方镜像&#xff08;及下载镜像&#xff09; docker pull 镜像名:标签例&#xff1a;docker pull nginx #表示现在最新版本的nginx镜像docker pull nginx:1.14…

使用frida发送微信消息给好友

前言 之前说过怎么用python来发送微信文本消息&#xff0c;原理大概就是构造内存机器码。其实frida也可以做类似操作&#xff0c;构造数据和机器码&#xff0c;然后调用。我就不重复操作了&#xff0c;这里说下另一种方法。 想使用frida来发送消息这个想法很早之前就有了&…

SQLlite

SQLlite ​ SQLite是一个软件库&#xff0c;实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。 一、什么是 SQLite ​ SQLite是一个进程内的库&#xff0c;实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库&…

Webpack 5 超详细解读(三)

21.babel-loader 使用 使用babel-loader对js文件进行处理&#xff0c;在lg.Webpack.js配置文件中配置js文件规则。 使用单独的插件进行转换 使用预设进行转换 使用babel.config.js配置文件进行babel配置 const path require(path) const CopyWebpackPlugin require(copy-W…

解决哈希冲突的方案

什么是哈希表 一种实现关联数组抽象数据类型的数据结构&#xff0c;这种结构可以将关键码映射到给定值。简单来说哈希表&#xff08;key-value&#xff09;之间存在一个映射关系&#xff0c;是键值对的关系&#xff0c;一个键对应一个值。 什么是哈希冲突 当两个不同的数经过…

基于 Text-CNN 的情感分析(文本分类)----概念与应用

文章目录基于Text-CNN情感分析卷积的基本概念Text-CNN的核心思想实现数据预处理批量处理操作--填充与截断拆分训练集与测试集定义Text-CNN模型设计模型定义与训练参数训练并评估模型结语基于Text-CNN情感分析 大家都知道&#xff0c;CNN(Convolutional Neural Network) 是深度…

非近轴衍射分束器的设计与严格分析

摘要 直接设计非近轴衍射分束器仍然是很困难的。由于有相对较大的分束角&#xff0c;元件的特征尺寸一般等于或小于工作波长。因此&#xff0c;它通常超出近轴建模方法的范围。在此示例中&#xff0c;将迭代傅里叶变换算法&#xff08;IFTA&#xff09;和薄元件近似&#xff08…

在线的MySQL数据库表结构对比工具

在项目部署上线前&#xff0c;测试版和正式版的数据库表结构做过哪些变更&#xff0c;如果没有做好实时记录&#xff0c;那么就需要对比找出差异&#xff0c;否则代码部分更新后&#xff0c;可能导致功能异常。 数据库表结构对比的工具很多&#xff0c;但是为了方便部署同步的…

Python 算法:线性回归及相关公式推导

0 前言 本文以一个小小的案例展开&#xff0c;主要讲解了线性回归的步骤、常用的两种求最优解的方法&#xff08;最小二乘法和sklearn回归算法及算法原理&#xff09;及相关函数、公式的过程推导。 相关环境&#xff1a;Windows 64位 Python3.9 scikit-learn1.0.2pandas1.4.2…

怎么在VMware上安装Linux?

推荐教程&#xff1a;Linux零基础快速入门到精通 下载CentOS操作系统 首先&#xff0c;我们需要下载操作系统的安装文件&#xff0c;本次使用CentOS7.6版本进行学习&#xff1a; https://vault.centos.org/7.6.1810/isos/x86_64/ (最后的/不要漏掉&#xff09; •或者直接…

02、Spring中的Bean实例化、作用域、生命周期及装配方式介绍

简介&#xff1a;本笔记主要介绍以下几点 1、Bean的常见属性及其子元素 2、实例化Bean的三种方式 3、Bean的生命周期和作用域 4、Bean的三种装配方式 1、Bean的配置 Spring简单来说就是一个大工厂&#xff0c;这个工厂负责创建和管理Spring容器中的Bean对象&#xff0c;如果要使…

基于深度学习的人脸表情识别的AR川剧变脸(一)

1、摘要 本项目分为两部分&#xff0c;第一个部分是人脸表情识别任务&#xff0c;第二部分是根据表情变化不同AR脸谱效果。 本文将第一部分&#xff0c;如何使用Keras训练一个人脸表情识别的卷积神经网络。 2、数据集处理 数据集我们使用FER2013PLUS人脸表情识别数据集&…