三维数字地球GIS系列相关文章(C++)如下:
1【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第一期
2【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第二期
3【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第三期
4【小沐学GIS】基于C++绘制三维数字地球Earth(QT、OpenGL)第四期
5【小沐学GIS】基于C++绘制三维数字地球Earth(QT、OpenGL、Satellite、卫星轨道模拟)第五期
6【小沐学GIS】基于C++绘制三维数字地球Earth(OpenG、SolarSystem、太阳系模拟)第六期
7【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、OpenSceneGraph / OSG)第七期
8【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、二维瓦片地图)第八期
9【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、三维瓦片地球)第九期
10【小沐学GIS】基于C++绘制三维数字地球Earth(osgEarth、三维瓦片地球)第十期
11【小沐学GIS】基于C++绘制OpenStreetMap地图矢量数据(QT、OpenGL、OSM、Mapbox)第十一期
12【小沐学GIS】基于C++绘制地形DEM(OpenGL、Terrain、TIFF、hgt)第十二期
三维数字地球GIS系列相关文章(其他语言)如下:
1【小沐学GIS】基于C#绘制三维数字地球Earth(C#、OpenGL)
2【小沐学GIS】基于Python绘制三维数字地球Earth(Python、OpenGL、地球/卫星)
3【小沐学GIS】基于Android绘制三维数字地球Earth(Android、OpenGL)
4【小沐学GIS】基于Golang绘制三维数字地球Earth(Go、OpenGL)
5【小沐学GIS】基于Rust绘制三维数字地球Earth(Rust、OpenGL)
6【小沐学GIS】基于Lua绘制三维数字地球Earth(Lua、OpenGL)
7【小沐学GIS】基于Java绘制三维数字地球Earth(Java、OpenGL)
8【小沐学GIS】基于Unity3d绘制三维数字地球Earth(Unity3d、OpenGL)
9【小沐学GIS】基于Vulkan绘制三维数字地球Earth(Vulkan)
10【小沐学GIS】基于Godot绘制三维数字地球Earth(Godot)
11【小沐学GIS】基于VTK绘制三维数字地球Earth(VTK)
三维数字地球WebGIS系列相关文章如下:
1【小沐学WebGIS】基于WebGL绘制三维数字地球Earth(WebGL、地球/卫星/航迹)
2【小沐学WebGIS】基于Babylon.JS绘制三维数字地球Earth(Babylon.JS、vue、react)
3【小沐学WebGIS】基于Three.JS绘制三维数字地球Earth(WebGL、vue、react)
4【小沐学WebGIS】基于Three.JS绘制三维太阳系Solar System(three.js、WebGL)第一期
5【小沐学WebGIS】基于Three.JS绘制三维太阳系Solar System(three.js、WebGL)第二期
6【小沐学WebGIS】基于Three.JS绘制卫星模拟Satellite Tracker(three.js、vue、react、卫星)
7【小沐学WebGIS】基于Three.JS绘制OpenStreetMap地图矢量数据(WebGL、OSM、2d/3d)
8【小沐学WebGIS】基于Three.JS绘制地形DEM(Three.JS、WebGL、TIFF)
9【小沐学WebGIS】基于Three.JS绘制瓦片地图(Three.JS、WebGL、Mapbox)
10【小沐学WebGIS】基于Three.JS绘制飞行轨迹Flight Tracker(Three.JS/ vue / react / WebGL)
11【小沐学WebGIS】基于Cesium.JS绘制卫星轨迹Satellite Tracker(Cesium、vue、react、卫星)
12【小沐学WebGIS】基于Cesium.JS绘制飞行轨迹Flight Tracker(Cesium/ vue / react / czml / GPX)
Three.JS系列相关文章如下:
1【小沐杂货铺】基于Three.JS构建IFC模型浏览器(WebGL、CAD、Revit、IFC)
2【小沐杂货铺】基于Three.JS绘制汽车展示Car(WebGL、vue、react、autoshow)第1期
3【小沐杂货铺】基于Three.JS绘制汽车展示Car(WebGL、vue、react、autoshow)第2期
4【小沐杂货铺】基于Three.JS绘制云图/热力图/CAE物理场渲染(Three.JS、WebGL、CAE、heatmap)
5【小沐杂货铺】基于Three.js渲染三维风力发电机(WebGL、vue、react、WindTurbine)
6【小沐杂货铺】基于Three.js渲染三维船舶航行仿真(WebGL、vue、react、ship/boat/vessel)
GIS系列相关工具如下:
1【小沐杂货铺】GIS瓦片地图下载工具(高德/天地图/谷歌/必应/OSM/MapBox/ArcGIS)

1、简介

1.1 three.js

https://threejs.org/

Three.js 是一个基于 WebGL 的开源 JavaScript 库,用于在浏览器中创建和展示 3D 图形。它由 Ricardo Cabello(也称为 Mr.doob)于 2010 年创建,旨在简化 WebGL 的复杂性,使开发者能够轻松创建 3D 场景和交互式内容。

易用性:给予简洁的 API,降低了 WebGL 的学习门槛,无需深入了解图形学底层知识。
跨平台支持:支持所有现代浏览器,包括移动设备。
功能丰富:内置多种几何体、材质、光源、动画和交互能力。
扩展性:支持加载外部模型和纹理,以及自定义着色器。
社区活跃:拥有丰富的教程、资源和插件,便于学习和扩展。

1.2 风力发电机

在 Three.js 中绘制风力发电机的核心思路是通过gltf几何模型模拟其关键结构,并添加动态效果实现叶片旋转的仿真。具体实现可分为以下几个部分:

首先构建场景基础环境,包括初始化 Three.js 核心组件(场景、相机、渲染器),添加光源(环境光 + 平行光)以增强模型立体感,并通过轨道控制器(OrbitControls)协助视角交互。

末了通过动画循环(requestAnimationFrame)让轮毂和叶片绕 Y 轴匀速旋转(设置较小的旋转速度如 0.01 弧度 / 帧),结合轨道控制器的阻尼效果,可模拟出风力推动叶片转动的动态场景,同时支撑鼠标拖拽旋转视角、右键平移、滚轮缩放,直观观察发电机的立体结构。

2、代码测试

2.1 代码1

代码编号: A9_1_ThreeJS_WindTurbine
关键词: three.js绘制风力发电机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 代码2

代码编号: A9_2_ThreeJS_WindTurbine_mapboxgl
关键词: three.js绘制风力发电机,在mapbox地球上,固定经纬度
在这里插入图片描述
在这里插入图片描述

2.3 代码3

代码编号: A9_3_ThreeJS_WindTurbine_js
关键词: three.js绘制风力发电机,卡通场景

在这里插入图片描述
在这里插入图片描述

2.4 代码4

代码编号: A9_4_ThreeJS_WindTurbine_js
关键词: three.js绘制风力发电机,天空盒
在这里插入图片描述
在这里插入图片描述

2.5 代码5

代码编号: A9_5_ThreeJS_WindTurbine_js
关键词: three.js绘制风力发电机
在这里插入图片描述

2.6 代码6

代码编号: A9_6_ThreeJS_WindTurbine_js
关键词: three.js绘制风力发电机
在这里插入图片描述
在这里插入图片描述

2.7 代码7

代码编号: A9_7_ThreeJS_WindTurbine_ts_vue_vite
关键词: three.js绘制风力发电机
在这里插入图片描述
在这里插入图片描述

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

如需源代码,请加文章末尾的QQ!