学习threejs,绘制二维线

👨‍⚕️ 主页: gis分享者

👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍⚕️ 收录于专栏:threejs gis工程师


文章目录


一、🍀前言

本文详细介绍基于threejs如何绘制二维线,亲测可用。希望能帮助到您。一起学习,加油!加油!

二、🍀绘制二维线

1. ☘️实现思路

  • 1、创建Scene三维场景
  • 2、初始化camera相机,定义相机位置 camera.position.set,设置相机朝向lookAt
  • 3、创建渲染器,document加入渲染器
  • 4、创建THREE.LineBasicMaterial线材质,创建THREE.Geometry线几何,线几何计入THREE.Vector3顶点,创建THREE.Line线类型,场景scene加入THREE.Line线。
  • 5、渲染器renderer渲染场景scene和相机camera

2. ☘️代码样例

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>learn2</title>
    <script src="lib/threejs/91/three.js"></script>
    <style>
        body{margin:0;}
        canvas{width: 100%; height:100%; display: block;}
    </style>
</head>
<body>
<script>
  //创建场景
  var scene = new THREE.Scene()
  //设置相机(视野,显示口的宽高比,近裁剪面,远裁剪面)
  var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 )
  //设置相机的视点
  camera.position.set(0,0,100)
  //设置相机的朝向
  camera.lookAt(new THREE.Vector3(0,0,0))
  //渲染器
  var renderer = new THREE.WebGLRenderer()
  //设置渲染器的高度和宽度,如果加上第三个值 false,则按场景大小显示,等比例缩放
  renderer.setSize( window.innerWidth, window.innerHeight,false)
  //将渲染器添加到html当中
  document.body.appendChild( renderer.domElement )

  //定义线的基本材料,我们可以使用LineBasicMaterial(实线材料)和LineDashedMaterial(虚线材料)
  var material = new THREE.LineBasicMaterial({color:0x0000ff})
  //设置具有几何顶点的几何(Geometry)或缓冲区几何(BufferGeometry)设置顶点位置,看名字就知道了,一个是直接将数据保存在js里面的,另一个是保存在WebGL缓冲区内的,而且肯定保存到WebGL缓冲区内的效率更高
  var geometry = new THREE.Geometry();
  geometry.vertices.push(new THREE.Vector3(-50,0,0))
  geometry.vertices.push(new THREE.Vector3(0,50,0))
  geometry.vertices.push(new THREE.Vector3(50,0,0))
  //使用Line方法将线初始化
  var line = new THREE.Line(geometry, material)
  //将线添加到场景
  scene.add(line)
  line.rotation.x += 1
  //使用渲染器渲染出场景和相机
  renderer.render(scene, camera);
</script>
</body>
</html>

效果如下:

相关推荐
吴梓穆4 天前
three js 9 补间动画tween
threejs
吴梓穆6 天前
Three js 5 HDR天空盒、颜色空间、材质
threejs
吴梓穆7 天前
Three js 4 调试工具ui
threejs
独立开发之道11 天前
【three.js教程】场景图:用“父子关系“让月亮自动绕地球转
threejs
avi911113 天前
Threejs新版本后glb导出提示.x问题GLTFExporter,替代3dmax
开发语言·前端·javascript·threejs·glb·gltfexporter
答案—answer1 个月前
VibeCoding 能做到什么程度?我用它做了一座 3D 数字博物馆
3d·ai编程·threejs·vibecoding
a1117761 个月前
三色软糖坠落玻璃池 THreeJS kimi
前端·人工智能·threejs
一根数据线2 个月前
从建筑可视化到数字孪生:Three.js如何改变3D展示?
3d建模·3d模型轻量化·threejs·3d模型·模型减面·lod·轻装3d
gis分享者3 个月前
学习threejs,实现炫酷的3D编程语言地球可视化效果
可视化·编程语言·threejs·地球·spheregeometry·raycaster·meshbasic
gis分享者4 个月前
学习threejs,实现分形球体交互可视化
交互·threejs·分形·glsl·球体·shadermaterial·planegeometry