当前位置: 首页 > news >正文

学习threejs,绘制二维线

👨‍⚕️ 主页: gis分享者
👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅!
👨‍⚕️ 收录于专栏:threejs gis工程师


文章目录

  • 一、🍀前言
  • 二、🍀绘制二维线
    • 1. ☘️实现思路
    • 2. ☘️代码样例


一、🍀前言

本文详细介绍基于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. ☘️代码样例

<!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>

效果如下:
在这里插入图片描述

http://www.lryc.cn/news/447932.html

相关文章:

  • 跑lvs出现soft connect怎么处理?
  • 实验1 Python语言基础一
  • 多线程相关内容
  • mybatis-puls快速入门
  • Pool 和 PG 架构(二)
  • 客户服务升级指南:如何以细节赢得客户忠诚
  • 闲盒支持的组网方式和注意事项
  • 828华为云征文|华为云Flexus云服务器X实例之openEuler系统下搭建MaxKB开源知识库问答系统
  • [Linux]:信号(上)
  • 浙大数据结构:05-树9 Huffman Codes
  • scrapy爬虫基础
  • 利用H5无插件播放RTSP流的实现方案
  • CSS文本格式化
  • python的 __name__和__doc__属性
  • Go语言中的Mutex实现探讨
  • 第五届计算机科学与管理科技国际学术会议(ICCSMT 2024)
  • 【machine learning-13-线性回归的向量化】
  • 【CSS|第2期】探索HTML与CSS中的文档流:从自然流到高级布局技巧
  • MATLAB绘图基础9:多变量图形绘制
  • JBOSS中间件漏洞复现
  • 每日论文6—16ISCAS一种新型低电流失配和变化电流转向电荷泵
  • 低代码开发平台:未来五大发展趋势预测
  • 国内AI大模型,这篇文章说透了
  • 3.4 爬虫实战-爬去智联招聘职位信息
  • Java 之注解详解
  • 计算机视觉实战项目4(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
  • 【Spring Cloud】Spring Cloud 概述
  • 猫头虎带你解决:error Error: certificate has expired
  • 盘点2024年4款高效率的语音转文字工具。
  • 记录Mac编译Android源码踩过的坑