学习threejs,绘制二维线

news2024/11/25 11:03:34

👨‍⚕️ 主页: 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.coloradmin.cn/o/2163975.html

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

相关文章

软件测试岗位的经典面试题

在我近十年的测试职业生涯中&#xff0c;我也面试过不少软件测试岗位的候选人&#xff0c;这几个问题我也经常问到。但很多同学在这几个高频面试题上&#xff0c;其实并不太了解面试官提问背后的逻辑和目的。 这篇文章&#xff0c;聊聊这几道经典面试题考查的目的&#xff0c;…

花朵识别系统Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练

一、介绍 花朵识别系统。本系统采用Python作为主要编程语言&#xff0c;基于TensorFlow搭建ResNet50卷积神经网络算法模型&#xff0c;并基于前期收集到的5种常见的花朵数据集&#xff08;向日葵、玫瑰、蒲公英、郁金香、菊花&#xff09;进行处理后进行模型训练&#xff0c;最…

生成式AI赋能:对话式BI引领数据分析新潮流

引言&#xff1a;数据交互的革新之旅 在信息爆炸的今天&#xff0c;我们与数据交互的方式正经历着前所未有的变革。静态的仪表盘&#xff0c;尽管曾以视觉上的革新引领一时风尚&#xff0c;但如今已难以满足用户对动态、深度数据洞察的迫切需求。用户不再满足于仅仅观赏精美的…

如何恢复被删除的 GitLab 项目?

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…

攻防世界--->backup

学习笔记。 备份文件&#xff1f; 没听过&#xff0c;&#xff0c;&#xff0c;搜呗。 我看的这个&#xff1a; CTF——Web网站备份源码泄露_web常见备份文件有哪些-CSDN博客https://blog.csdn.net/weixin_51735061/article/details/124238304 进入靶场。 嗯&#xff1f; -…

实操学习——文章和评论的设计

实操学习——文章和评论的设计 1.文章表的设计2.文章表接口演示基础权限创建文章修改文章删除文章浏览所有文章 3.评论表的设计4.评论表接口演示1. 查询指定文章下的所有评论 1.文章表的设计 创建一个community的app 在settings中 完成注册 定义模型 创建文章表 from django.…

2024 Redis 全部

1. 单机部署 1.1 检查环境&#xff0c;创建目录。 # 本地运行&#xff0c;不需要考虑安装的原因&#xff0c;可以卸载防火墙 # 关闭防火墙 systemctl stop firewalld.service# 查看防火强状态 firewall-cmd --state# redis 是基于gcc 环境的&#xff0c;查看是否有 gcc 环境 …

线程基础、状态及常用方法

多线程基础 进程和线程 什么是程序&#xff1f; 程序是包含有计算机指令和数据的文件。 什么是进程&#xff1f; 进程是程序的一次执行过程&#xff0c;是计算机分配资源的最小单位。 什么是线程&#xff1f; 一个进程中会包含若干个线程&#xff0c;每个线程都是一个独立的…

OpenCV图像文件读写(2) 检查 OpenCV 是否支持某种图像格式的写入功能函数haveImageWriter()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 haveImageWriter 函数用于检查 OpenCV 是否支持某种图像格式的写入功能。这个函数可以帮助开发者在编写代码时确定是否可以成功地将图像写入特定…

【Linux】Linux基本命令

目录 文件和目录操作&#xff1a; ls cd pwd cp mv rm mkdir rmdir touch clear history which/whereis 文件查看和编辑&#xff1a; cat less head tail vi 或 vim sz/rz echo 系统信息和管理&#xff1a; su uname hostname df free top ps ki…

fopen与fwrite在C语言中写文件及open、write的对比

fopen与fwrite在C语言中写文件及open、write的对比 一、fopen与fwrite写文件1. fopen函数介绍2. fwrite函数介绍3. 示例代码4. 注意事项二、open与write写文件1. open函数介绍2. write函数介绍3. 示例代码4. 注意事项三、fopen/fwrite与open/write的对比1. 跨平台性2. 功能与灵…

android和ios双端应用性能的测试工具

1.工具介绍 基于日常工作的需要&#xff0c;开发了一款新的android和ios端应用性能测试工具&#xff0c;本工具在数据测试方面与所流行的工具没有区别。欢迎下载使用体验。 本工具为筋斗云&#xff0c;工具说明 本工具无侵入&#xff0c;不需要root&#xff0c;低延迟…

统一建模语言(UML)在软件研发过程中常用图接受:类图、用例图、时序图、状态图、活动图、流程图、顺序图

UML具有许多不同类型的图表&#xff0c;包括&#xff1a; 静态图&#xff1a;用例图、类图、对象图、组件图、部署图动态图&#xff1a;活动图、状态图、时序图&#xff08;又叫顺序图、序列图&#xff09;、协作图 软件工程&#xff08;软件工程中的各种图一般用于以下三个阶段…

线上报名小程序怎么做

在这个数字化、智能化的时代&#xff0c;信息技术的发展正以前所未有的速度改变着我们的生活。无论是学习、工作还是娱乐&#xff0c;互联网都成为了我们不可或缺的一部分。而在线上报名这一领域&#xff0c;小程序的出现更是为广大用户带来了前所未有的便捷与高效。今天&#…

# 高可用的并发解决方案nginx+keepalived(四)

高可用的并发解决方案nginxkeepalived&#xff08;四&#xff09; 一、Keepalived安装 1、keepalived 介绍 Keepalived 是一种高性能的服务器高可用或热备解决方案&#xff0c;Keepalived 可以用来防止服务器单点故障的发生&#xff0c;通过配合 Nginx 可以实现 web 前端服务…

SOMEIP_ETS_134: SD_Option_Length_ends_past_Options_Array_Var_A

测试目的&#xff1a; 验证DUT能够处理一个其选项长度超出所指示的选项数组长度的SubscribeEventgroup消息&#xff0c;并以SubscribeEventgroupNAck作为响应或完全忽略该请求。 描述 在变体A中&#xff0c;通过将SOME/IP头部中指示的总长度从60字节略微减少到48字节&#x…

Tomcat后台弱口令部署war包

1.环境搭建 cd /vulhub/tomcat/tomcat8 docker-compose up -d 一键启动容器 2.访问靶场 点击Manager App tomcat8的默认用户名和密码都是tomcat进行登录 3.制作war包 先写一个js的一句话木马 然后压缩成zip压缩包 最后修改后缀名为war 4.在网站后台上传war文件 上传war文件…

MySQL基础篇 - SQL

01 SQL通用语法 02 SQL分类 03 DDL语句 04 DML语句 05 DQL语句(单表查询) 05_01 学习总览 05_02 基本查询 05_03 条件查询 【应用实例】&#xff1a; 05_04 聚合函数 05_05 分组查询 05_06 排序查询 05_07 分页查询 【boss题目】&#xff1a; 05_08 执行顺序 06 DCL语句 【概…

Google发布改进型Gemini 1.5 系列AI模型 并将API价格降低50%

Google今天发布了两款可投入生产环境的更新版Gemini 1.5 型号&#xff1a;Gemini-1.5-Pro-002 和 Gemini-1.5-Flash-002。与五月份发布的原版 Gemini 1.5 型号相比&#xff0c;这两款新产品略有改进。 更新后的 Gemini 1.5 系列模型在 MMLU-Pro 基准成绩提高了约 7%&#xff0c…

UNI-SOP认证系统的定位

目前市面上的认证开发框架比较多&#xff0c;比如SA-TOKEN、SHIRO以及SPRING集成的Oauth2等都是比较优秀的认证授权框架&#xff0c;还有像若依这样比较完整的带有后台一些常用功能的开发框架&#xff0c;诸如这些认证授权开发框架都集成了用户的登录授权功能&#xff0c;他们可…