package com.test; import java.util.*; import java.io.*; public class Main { p...
(int)Math.round(volume*1000)/1000.000)+””); }else{ shouDialog(); } } }else if(rb2.isSelected()){//球体
Output 输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。
球体 opengl-pbr 光照一讲里,以球体为案例进行说明。...球体的绘制第一次接触理解花了点时间 一、球体坐标分解 球体坐标分解 按照经纬度来理解,经度是y轴上的切面,维度是x-z 平面的弧度 经纬度 将y轴切分成64等分,x-z平面切分成64等分的扇形 y轴从上到下取值为...[0, 180],即[0, π],x-z平面扫描取值[0, 360]即[0, 2π] 详细计算,参考如下代码,把一个球体拆分成65 * 65 个点 注意: y = cos(ySegment * PI...为保证所有三角形绘制都遵循顺时针原则(剔除中用到),要求当前增加的点角标为奇数:绘制顺序T=[n-1, n-2, n] 为偶数:绘制顺序T=[n-2, n-1, n] 参考下图,自己拿笔画一画就明白了 绘制顺序 绘制球体的其他代码就很好理解了不一一说明
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-.../d3.v3.min.js'> </script...官网 demo github 仓库中有 demo 示例 https://github.com/BinaryMuse/planetary.js 配置好 js 文件后,在 index.html
移动旋转物体可以使用Three.js提供的OrbitControls.js,也可以手动写控制器。 原理:获取鼠标点击的位置与移动的距离,根据移动的距离计算出大概旋转的角度。...查看旋转效果 var container; var camera, scene, renderer...geometry = new THREE.PlaneBufferGeometry(200, 200); geometry.rotateX(-Math.PI / 2); //从右边看顺时针旋转
#求球体数据 import math r = float(input(“请输入球的半径:”)) area = 4 * math.pi * math.pow(r, 2) volume = (4 /
文章目录 前言 一、Three.js的使用 1.球体的绘制 二、球体相关js文件 三、效果图 四、总结 ---- 前言 Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景...一个典型的 Three.js 程序至少要包括渲染器(Renderer)、场景(Scene)、照相机(Camera),以及你在场景中创建的物体。...Three.js相关文档:http://docs.thingjs.com/ 一、Three.js的使用 安装第三方包:npm i --save threejs-miniprogram 1.球体的绘制...touchmove'}) }, touchEnd(e) { this.canvas.dispatchTouchEvent({...e, type:'touchend'}) } }) 二、球体相关...js文件 export function renderSphere(canvas, THREE) { var container, stats; var camera, scene, renderer
概述 需要说明的是,球体投影到像素空间的结果可能不是一个正圆,其半径或者直径大小只能估算而没有确定的值。...根据参考资料,球体投影到像素空间的半径的计算公式为: radius_{[clip\_space]} = radius * cot(fov / 2) / Z \tag{0} 其中radius是球体的半径...使用参考文章4中的插图: 球体投影到像素空间的半径其实就是h的像素长度。...此时,有: tan\theta = radius_{[clip\_space]} / z_{[clip\_space]} \tag{1} 球体被投影到裁剪空间: 由投影变换的性质可知: tan
2y轴旋转转动来实现的。...以数组的形式获取,并根据其数组长度length来计算图片的旋转角度。...这时候为装有图片的盒子加上transform:rotateX(-15deg);便能看到较为完整的3d效果了,此时实现盒子绕y轴转动便可实现旋转木马的效果。 ?...单纯使盒子转动就可以实现图像,我们使用setinterval来不断使其旋转。...但如果想使用鼠标拖动实现旋转木马,则需要再加一些代码,使装有盒子的容器(wrap)能够根据鼠标坐标变化绕容器(wrap)自身y轴转动。
关注初识Threejs与小编一起学习成长 在Three.js的赋能下,WEB网页效果逐渐丰富起来,今天我们就来运用之前学习的Three.js基础知识,实现一个旋转的几何体-球体。 ?...是轴道控制器控件,用它可以实现场景与鼠标交互,让场景动起来,控制场景的旋转、缩放、平移;CSS2DRenderer.js是CSS 2D渲染器,使用CSS2DObject和CSS2DRenderer可以绘制一个...var h2html=$("Three.js球体旋转案例").get(0); var earthLabel...视角不能低于水平面 _this.renderFun();//渲染 } 04 写在最后 以上就是此次案例的核心代码,大家可以动手尝试一下修改构造函数的参数值,如:基础材质的纹理贴图、网格模型的旋转方向等...关注公众号回复three.js,获取完整案例代码。
Talk is cheap,Show me the code: import rhinoscriptsyntax as rs f = open("coordn...
关注初识Threejs与小编一起学习成长 在上一篇案例中实现了几何体-球体旋转效果,今天继续丰富这个案例效果,在球体的周围添加光圈及旋转模块(图片+文字组成),均匀的分布在球体周围,围绕着球体逆时针旋转...知识点 1、基础线条材料、线条模型; 2、矩形平面模型; 3、射线拾取; 01 绘制光圈 围绕着球体绘制光圈。...在球体周围绘制可点击模块,我们这里使用默认图片与业务名称合并生成一张新图片,然后通过矩形平面模型、基础网孔材料设置纹理贴图的方式。...} 在周期性渲染场景方法中添加: moons.rotation.y += Math.PI / 180 / delay * intc;//球体周围模块旋转 方可围绕球体旋转。...关注公众号回复three.js,获取完整案例代码。
前言 笔者认为Three.js是一个伟大的框架,为什么这样说,因为它可以让我们轻易创造三维世界,甚至好像笔者写这遍教程,可以创造一个太阳系,在这个三维世界里你就是创世主。哈哈!好像说得有点夸!!...24.6小时 公转一年则有687天,其他行星也有不同的公转和自转信息,有了这些信息就可以定义一些基本规则 [image.png] 了解Three框架 Three的一些基本概念我在用最简单方式打造Three.js...:实现旋转功能有三种方式 旋转照相机 旋转整个场景(Scene) 旋转单个元素 因为我们这里每个行星的自转速度,公转速度都不一样。...所以设置整体旋转并不可行,所以要给每个元素设置不同的旋转属性。 行星需要让它们围绕着太阳转,就要先给它们自身设置一个位置偏移。...也会绕着初始的默认Y轴旋转。
TIM截图20191227154704.png 接下来了解一下开发流程吧: HelloWorld.js /** * 说明:创建App,url为场景地址(可选) */ var app = new THING.App...({ url: 'https://www.thingjs.com/static/models/storehouse' // 场景地址 }); 创建立方体.js /** * 说明:创建一个Box...,并在app的update事件中旋转Box,摄像机看Box */ var app = new THING.App(); // 创建Box var box = app.create({ type...() { box.rotateY(30 * app.deltaTime * 0.001); // 箱子自转 }); // 看Box app.camera.lookAt(box); 创建几何体.js...plane = app.create({ type: 'Plane', width: 8, height: 8, position: [0, 0, 0] }); // 平面旋转
树旋转,以实现树的重新平衡。...所以,AVL树最核心操作就是“AVL 旋转”!...事实上,AVL的每一次插入结点操作最多只需要旋转1次(单旋转或双旋转)。...每一次删除操作最多需要O(logN)次旋转。...因此,删除操作的时间复杂度为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次(单旋转或双旋转)。...每一次删除操作最多需要O(logN)次旋转。...因此,删除操作的时间复杂度为O(logN)+O(logN)=O(2logN); JS 实现 左单旋: function roateLeft(AvlNode) { var node =
先看一下实例 gif: tl;dr; 使用 three.js 实现全景技术 UV 映射原理简介 3D 坐标原理和移动控制 Web 陀螺仪简介 iv-panorama 简单库介绍 基于 Three.js...设置合适的视野效果,这里的范围还需要根据球体的直径来决定,通常为 2*radius + 100,反正只要比球体直径大就行。...几何球体的参数设置 上面其实有两个部分需要讲解一下 球体参数设置里面有三个属性值比较重要,该 API 格式为: 。...全景没有 VR 那种沉浸式体验,单单只涉及三个维度上的旋转而没有移动距离这个说法。...下面是最简代码: 这里主要模拟地球坐标: lat 代表维度(latitude): 用户上下滑动改变的值,或者手机上下旋转 lon 代表经度(lontitude): 用户左右滑动改变的值,或者手机左右旋转
property(nonatomic,strong)GLKBaseEffect *baseEffect; self.baseEffect = [[GLKBaseEffect alloc]init]; 第六步 生成球体的顶点坐标和纹理坐标和索引...下面是生成球体坐标C语言方法 #define ES_PI (3.14159265f) int generateSphere(int numSlices, float radius, float *...= textureInfo.target; self.baseEffect.texture2d0.name = textureInfo.name; 第九步 在绘制之前,我们要设置一下 世界坐标和绘制球体的自身坐标...GLKMatrix4MakeTranslation(0.0f, -1.0f, -6.5f); self.baseEffect.transform.modelviewMatrix = modelViewMatrix; 第十一步 我们设置个沿着Y轴旋转的效果...让学习成为一种习惯 总结 写这篇文章主要给初学者一个绘制球体的思路,苹果给我们封装的类,帮助我们简化了不少代码,如果纯OpenGL 做这样一个练习代码量还是挺多的。 代码下载
所以,最好全景呈现方式是球体全景,360度无死角,本文将以球体全景来讲解。...(Scene) 第二步:创建一个球体,并将全景图片贴到球体的内表面,放入场景中 第四步:创建一个透视投影相机将camera拉到球体的中心,相机观看球体内表面 第五步:通过修改经纬度来,改变相机观察的点...Jietu20210527-172203-HD.gif 至此,我们全景制作已经完成了,(只统计js代码:共_28行_代码,我才不是标题党呢??)。...三、全景交互原理 3.1 手势交互之旋转 手势交互之旋转指单指滑动操作,这与滑动地球仪的交互是一致的。...上面的代码已经加上全景的单指交互,但是,缺少了旋转惯性。
领取专属 10元无门槛券
手把手带您无忧上云