首页 > 其他分享 >three.js学习1(vue3)

three.js学习1(vue3)

时间:2023-07-31 17:46:05浏览次数:47  
标签:const THREE js points three vue3 new scene

1.引入threejs

npm install --save three

在组件内

import * as THREE from 'three'

2.创建容器

创建canvas标签,为3D渲染建立容器

<template>
  <div>
    <canvas id="three"></canvas>
  </div>
</template>

3.创建场景

 Three.js依赖一些要素,第一是scene,第二是render,第三是carmea

// 创建场景
const initThree = () => {
    // 场景
    const scene = new THREE.Scene()
    scene.background = new THREE.Color('#eee')
    // 容器
    const canvas = document.querySelector('#three')
    // 渲染
    const renderer = new THREE.WebGLRenderer({ canvas, antialias: true })
    // 相机
    const camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 0.1, 1000)
    camera.position.z = 100
    function animate() {
        renderer.render(scene, camera)
        requestAnimationFrame(animate)
    }
    animate()
}
onMounted(() => {
    initThree()
})

场景的准备好了,现在是一片灰色,没有物体

4.加载物体,这里我们画线就好

 // 画线
    const material = new THREE.LineBasicMaterial({ color: 0x0000ff });
    const points: any = [];
    points.push(new THREE.Vector3(- 10, 0, 0))
    points.push(new THREE.Vector3(0, 10, 0))
    points.push(new THREE.Vector3(10, 0, 0))
    const geometry = new THREE.BufferGeometry().setFromPoints(points)
    const line = new THREE.Line(geometry, material)
    scene.add(line)

5.结果

代码地址:https://gitee.com/yuexiayunsheng/vue3learn/blob/master/src/views/ThreeCase.vue

 参考:https://zhuanlan.zhihu.com/p/333615381

 

 

标签:const,THREE,js,points,three,vue3,new,scene
From: https://www.cnblogs.com/foxing/p/17594026.html

相关文章

  • MYSQL中JSON类型介绍
    1json对象的介绍在mysql未支持json数据类型时,我们通常使用varchar、blob或text的数据类型存储json字符串,对mysql来说,用户插入的数据只是序列化后的一个普通的字符串,不会对JSON文档本身的语法合法性做检查,文档的合法性需要用户自己保证。在使用时需要先将整个json对象从数据库读......
  • Js 之promise、async 和 await
    一、示例代码<html><head></head><body><scriptsrc="jquery.js"></script><script>constlogin=asyncfunction(){vara=awaitnewPromise((resolve,reject)=>{$.get("&qu......
  • js实现浏览器端大文件分块上传
    ​ 第一点:Java代码实现文件上传FormFilefile=manform.getFile();StringnewfileName= null;Stringnewpathname= null;StringfileAddre= "/numUp";try{    InputStreamstream=file.getInputStream();// 把文件读入    StringfilePath=request.......
  • VUE3、ElementPlus 重构若依vue2 表单构建功能
    Vue3+ElementPlus+Vite重构若依Vue2表单构建功能若依官方的Vue3版本发布已经有段时间了,就是这个表单构建功能一直没有安排计划去适配到Vue3!前段时间公司需要做个类似的功能,就直接借鉴若依Vue2的来直接改了吐槽下:vuedraggable-vue3坑真多,官方文档一言难尽,现在不推荐使......
  • 使用impress.js实现超炫库的幻灯片
    1.本人的示例项目项目一:gitee2.更多列子github3.其他博客impress.js使用教程–王进的个人网站(jingege.wang)......
  • python 接口返回存储json字符串包含\n
    实现“python接口返回存储json字符串包含\n”的步骤为了实现接口返回存储包含特殊字符\n的JSON字符串,我们需要按照以下步骤进行操作:步骤描述1创建一个Python接口2生成包含特殊字符\n的JSON字符串3返回JSON字符串现在,让我们一步步实现这个过程。步骤1:创建......
  • vue3
    一、vue3最终响应式原理letperson={name:'张三',age:15,}//我们管p叫做代理数据,管person叫源数据constp=newProxy(person,{//target代表的是person这个源对象,propName代表读取或者写入的属性名get(target,propName){console.log('有人......
  • vue3
    1、ref深拷贝视图层更新不改变源数据constnum=1constrefNum=ref(num)constclick=()=>{refNum++//refNum已经改变了,但原数据num不变}2、toRef源数据改变不更新视图3、toRefs传入一个响应式对象constobj=reactive{name:"iwen",age:19}//取值为obj.na......
  • npm下载依赖报错:npm does not support Node.js vxx.xx.x
    因为本地运行不同的项目需要的node.js版本不一样,所以经常需要用nvm来切换nodejs版本,有时候下载依赖就会出现问题。想下载依赖 运行npmi后报错,提示node和npm版本不对应:npmdoesnotsupportNode.jsv14.15.1...解决思路:1.考虑node版本和npm版本不兼容的问题,查看node......
  • Map和Object:JS如何根据需求选择正确的键值对数据结构
    Map和Object都是JavaScript中常用的数据结构,它们都可以用来存储键值对(key-valuepairs)。但是,它们之间也有一些重要的区别,了解这些区别可以帮助我们选择更合适的数据结构来满足我们的需求。公众号:Code程序人生,个人网站:https://creatorblog.cnObject的特点Object是JavaScript中最基本......