Planetary.js 是一款生成可交互地球模型的插件。 简介 Planetary.js 可以生成一个性能(UI)良好可交互的地球。...官网:http://planetaryjs.com/ Github:https://github.com/BinaryMuse/planetary.js 特点 完全可定制,包括颜色,旋转等等 在任何具有自定义颜色和大小的位置显示动画...与 json 文件下载 核心 js 有三个,名字叫 d3.v3.min.js、topojson.v1.min.js 和 planetaryjs.min.js 需要使用的文件名字叫 world-.../dist 使用方法 拿到文件后可以放在静态网页的某个文件夹,也可以放到自己的图床里,也可以直接引用原始的 js 文件,总之可以访问到就可以 注意 :直接本地运行是不能显示地球的,需要在 web...planet.projection.rotate(rotation); lastTick = now; } }); }; };})(); 之后可以加入数据来让他展示指定地球上的位置
概述 许久未更新,这一篇是凑数的,用最新的mapboxGL2.10的版本实现一个旋转的地球的效果。...实现效果 实现 为效果好一点,添加了一个canvas的星空动画,实现代码如下: class Star { constructor(canvas, gradientImage, maxStars...100) { this.ctx = canvas.getContext('2d') this.gradientImage = gradientImage //星星移动的半径...this.orbitX = canvas.width / 2; this.orbitY = canvas.height / 2; //利用正弦余弦算出真正的x、y位置...ctx.beginPath(); ctx.arc(half, half, half, 0, Math.PI * 2); ctx.fill(); } } 旋转的地球的实现比较简单
查看旋转地球效果 主要用到几个知识点 (1)显示文字是使用了three.js 的精灵(Sprite),精灵的文字方向始终面向相机,文字是在canvas中画的,精灵的材质就是加载的带有文字的canvas...DOCTYPE html> 旋转地球 <style type="text...(-1, 1, 1); // scene.add(light); } // <em>地球</em> var earthMesh; function initEarth()
老 孟 一个 有态度 的程序员 ? No 图 No Code,上面旋转的地球是不是很酷炫,下面就让我们开始说说如何绘制旋转地球吧?绘制旋转地球需要3个步骤: 计算球体顶点数据。 地球纹理贴图。...通过MVP矩阵旋转地球。...最难的顶点坐标和纹理坐标已经获取,下面开始介绍如何绘制地球。...generateSphere方式就是开始介绍的顶点数据生成的方法。 地球纹理贴图 地球纹理图片如下: ?...,我们经常听说的天空穹、全景(VR)球体模式和地球的绘制基本一样,只不过是相机位置的不同而已。
经过前面几个章节的介绍,我们对Threejs已经有了一个相对深入的了解,下面我们通过Threejs来做一个旋转的地球效果。....拷贝资源,将Threejs源码中的three.module.js拷贝到js文件夹,将地图的贴图文件拷贝到images文件夹 3.用vscode打开earth文件夹,在根目录下新建index.html文件...水平分段数和垂直分段数参数const geometry = new THREE.SphereGeometry(150,32,32)创建材质 这里使用MeshPhongMaterial创建材质,并加载images中准备好的地球材质.../images/earth.js')})创建物体 创建网格对象并使用上面创建的几何体和材质作为参数传给对象,设置对象的坐标位置,并将其添加到场景中const earth = new THREE.Mesh...,并自动旋转 至此,旋转的地球已经创建完成,完整的代码和地球贴图材质可以通过以下地址下载:https://download.csdn.net/download/w137160164/87650456核心代码如下
大家好,又见面了,我是你们的朋友全栈君。 说明:这个不是GIS软件,是一个带地形的三维地球。...可在线加载全球地形,也可离线运行,运行流畅无卡顿,占用内存小,最大等级可达到地图20级 本数字地球全部由作者自由开发完成,未使用任何第三方插件,拥有完全知识产权。...视频Unity3d版数字地球、谷歌地球(google earth)_哔哩哔哩_bilibili 更新说明: 2021年12月15日更新:日出、日落、大气散射、蓝天效果。...另外,可用于数据可视化的地球见我的另一篇博客:Unity3d版数字地球、大数据可视化地球_zouxin_88的专栏-CSDN博客 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
接上篇:一个基于ThreeJS 实现的漂亮的3D 地球制作过程详解(上篇) 3D 地球成果展示 github仓库地址:https://github.com/RainManGO/3d-earth npm...实现过程 实现步骤分解: ThreeJS环境初始化 星空背景 添加带纹理的地球 世界地图轮廓边界绘制 地球光晕 添加地球云层 城市位置标注和涟漪效果 添加飞线B样条 地球自转和镜头缩放动画 接上篇从第七步骤说起...longitude * Math.PI) / 180; //转弧度值 var lat = (latitude * Math.PI) / 180; //转弧度值 lon = -lon; // three.js...旋转动画的原理主要是利用tween 动画,然后更新地球位置和轨道控制器的zoom 。...tween 动画控制旋转和缩放 旋转到中国的时候缩放 具体代码如下: //旋转地球动画 var rotateEarthStep = new TWEEN.Tween({ rotateY
前言 头一阵子B站,抖音都被 陶大宇大哥的倒转地球刷屏了,终于热度下去了,不用倒转头七了。 真的和地球扛上了,公司的大屏项目需要科技感的地球、飞线图。...目标设计样子: 实现步骤分解: ThreeJS环境初始化 星空背景 添加带纹理的地球 世界地图轮廓边界绘制 地球光晕 添加地球云层 城市位置标注和涟漪效果 添加飞线B样条 地球自转和镜头缩放动画 初始化...: 世界地图轮廓边界绘制 刚才光秃秃的地球,需要加上点轮廓。...材质对象 var line = new LineSegments(geometry, material); //间隔绘制直线 line.scale.set(R, R, R); //lineData.js...texture, //设置精灵纹理贴图 transparent: true, //开启透明 // opacity: 0.5,//可以通过透明度整体调节光圈 }); // 创建表示地球光圈的精灵模型
当我们需要固定场景背景,固定摄像机的时候。移动旋转物体可以使用Three.js提供的OrbitControls.js,也可以手动写控制器。...原理:获取鼠标点击的位置与移动的距离,根据移动的距离计算出大概旋转的角度。 查看旋转效果 <script src=".....mouseXOnMouseDown = event.layerX - windowHalfX; //鼠标按下<em>的</em><em>旋转</em>角度 targetRotationOnMouseDown...= event.layerX - windowHalfX; //移动<em>的</em>时候<em>旋转</em><em>的</em>角度 = 刚按下鼠标的角度+移动<em>的</em>位置-鼠标按下时<em>的</em>位置 targetRotation
问题描述 3D旋转相册是通过perspective属性的盒子1产生向网页内部的延伸感,并让装有图片沿z轴平移后的盒子2在拥有perspective属性的盒子1内凭transform属性产生的3d效果沿盒子...2y轴旋转转动来实现的。...}/*此属性是实现旋转木马的要点,能产生空间上的距离/延伸感。...以数组的形式获取,并根据其数组长度length来计算图片的旋转角度。...这时候为装有图片的盒子加上transform:rotateX(-15deg);便能看到较为完整的3d效果了,此时实现盒子绕y轴转动便可实现旋转木马的效果。 ?
周末闲来无事,反复查阅着维基百科,在一个个链接间跳转,总结出这篇博客,记述地球的起源与地质的变迁 地球诞生 — 46亿年前 138亿年前,宇宙从大爆炸中诞生,此时的宇宙充满了高密度、高温高压的物质...我们就将目光聚焦到宇宙中的地球上 46亿年前,地球伴随着太阳系的诞生而诞生,这之后的不久,一个名为“忒伊亚”的小行星飞速向地球飞来,在这个火星般大小的星球与地球撞击之后,月球形成了 后期重轰击期(41亿年前...~ 38.4亿年前) 起初,地球是一个岩浆球,炽热的岩浆不断聚合、冷却 然而,刚刚诞生的地球并非如同一个婴儿般享受着刚刚来到这世上的平静,与地球一起诞生的还有大量的小行星和彗星,由于引力的作用,他们在太阳系中四处飞射...公里的月球东方海形成后,太阳系中的撞击事件显著减少,地球形成稳定 总结 起初人们都认为,整个冥古宙地球都处于融化态,直到冥古宙末期,地球才被一层岩石外壳包裹,成为一个稳定的行星,现已知最早岩石的结构 —...) 成冰纪的得名就是著名的前寒武纪大冰期,这是十亿年来地球最严重的寒冷期,极地冰盖扩展到赤道,很多地质学家相信当时的地球成为了一个雪球,海洋也完全冻结 火山喷发的二氧化碳因地球生物不能光合作用而逐步累积
由于它作为 Geometry() 的容器,它还可以用于操纵位置、旋转等。 ...... 组件利用 Three.js Texture() 类,它让我们可以将逼真的纹理映射到引擎盖下的网格表面。 为了演示这个过程,我们将创建一个地球的 3D 模型。...使用此函数,我们可以通过在每一帧上为其旋转属性添加一个值来为我们的地球设置动画。...y 轴旋转添加 0.02 度。...你可以通过将 x 和 z 属性添加到 ref、onBeforeRender 函数和地球的网格来添加更多旋转动画。
旋转代码 var ro=0; $(document).ready(function(){ setInterval("LoopRotate()",50); }); function LoopRotate...(point) { var yyy=point.GetY(); var xxx=point.GetX(); //获取旋转角度...; var degSin=str.substr(0,str.indexOf(",")); var rotateDeg=""; //合并旋转角度和夹角... rotateDeg=360-Math.acos(degCos)*180/Math.PI; } //重新计算新的位置
树旋转,以实现树的重新平衡。...以下 GIF 演示了不断将节点插入AVL树时的情况,包含: 左旋(Left Rotation) 右旋(Right Rotation) 右左旋转(Right-Left Rotation) 左右旋转(Left-Right...Rotation) 以及带子树的右旋(Right Rotation with children) 安利一个在线动态演示 VAL 树的旋转的网站:https://www.cs.usfca.edu/~galles...事实上,AVL的每一次插入结点操作最多只需要旋转1次(单旋转或双旋转)。...因此,删除操作的时间复杂度为O(logN)+O(logN)=O(2logN); JS 实现 左单旋: function roateLeft(AvlNode) { var node =
AVL旋转 在 AVL 树中,增加和删除元素的操作则可能需要借由一次或多次 树旋转,以实现树的重新平衡。 所以,AVL树最核心操作就是“AVL 旋转”!...以下 GIF 演示了不断将节点插入AVL树时的情况,包含: 左旋(Left Rotation) 右旋(Right Rotation) 右左旋转(Right-Left Rotation) 左右旋转(Left-Right...),那么每一次插入数据使得AVL中某些结点的平衡因子超过1就必须进行旋转操作。...事实上,AVL的每一次插入结点操作最多只需要旋转1次(单旋转或双旋转)。...因此,删除操作的时间复杂度为O(logN)+O(logN)=O(2logN); JS 实现 左单旋: function roateLeft(AvlNode) { var node =
最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下。 计算地球表面两点间的距离大概有两种办法。...第一种是默认地球是一个光滑的球面,然后计算任意两点间的距离,这个距离叫做大圆距离(The Great Circle Distance)。...公式如下: 使用JS来实现为: var EARTH_RADIUS = 6378137.0; //单位M var PI = Math.PI; function getRad...当然,我们都知道,地球其实并不是一个真正的圆球体,而是椭球,所以有了下面的公式: /** * approx distance between two points on earth ellipsoid...,当然,最后结果的经度实际上还取决于传入的坐标的精度。
今天做了一道 leetcode 关于矩阵旋转(rotate-image,点击可查看原题)的题目,自己写了一种解法(基于Python),网上也看到一些比较好的解决方式,借此做一个总结。...阅读本文可能需要 5-8 分钟 题意分析 题目是英文的,但是看这个题目英文理解起来也不是很困难。...关键词: 1、matrix: 矩阵 2、2D matrix: 二维矩阵 3、rotate: 旋转 4、clockwise: 顺时针 5、90 degrees: 90度 即:我们需要将一个二维矩阵顺时针旋转...这里有点小投机的是,题目中说的是不能新定义一个二维矩阵,不是说不能去新开辟空间,所以一度程序上是有简化的。...matrix[col][total_row - 1 - row] 这里的 row 与 col 均从 0 开始计算 因为只能原地修改原二维矩阵,也不能重新分配一个新的二维矩阵, 所以投机了一下,先生成了一个和目标矩阵顺序的一维矩阵
今天郭先生说说对象如何绕任意轴旋转。...说一说其中一种方法,也是比较容易理解的一种,它的原理就是将子对象放到一个盒子中,然后改变子对象相对于父对象的位置(因为子对象的原点默认还是在盒子的中心),最后转动盒子,这样子对象的旋转就不是绕盒子的中心了...在线案例点击模拟门旋转。 image.png 说到这里就不得不说THREE.Group对象了,除了isGroup和type这两个属性,它几乎和Object3D是相同的。...其目的是使得组中对象在语法上的结构更加清晰。它的作用就像一个容器。...-27的偏移量,为了保证门在世界坐标系的中心,我在将门的Group的x方向平移27。
//初始化方法 } private void init(){ setBounds(200, 200, 500, 500); setVisible(true); setTitle("图片旋转.../ycy.jpg").getImage();//获取图片资源 g2.rotate(Math.toRadians(num));//参数:弧度 Math.toRandians角度转弧度 //旋转图片
搜索旋转排序数组 leetcode题号33 题目 假设按照升序排序的数组在预先未知的某个点上进行了旋转。...,使之满足旋转排序数组的情况。...II 题目 假设按照升序排序的数组在预先未知的某个点上进行了旋转。...II 题目 假设按照升序排序的数组在预先未知的某个点上进行了旋转。...题目 搜索旋转数组。给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详。请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的。
领取专属 10元无门槛券
手把手带您无忧上云