Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在three.js中添加多维数据集数

在three.js中添加多维数据集数
EN

Stack Overflow用户
提问于 2016-04-29 12:58:38
回答 1查看 869关注 0票数 1

我试图在下面的例子中添加一些领域。最初,它只有三个立方体,但我需要添加大约10个球体,它们之间的距离是等距的,并以不同的速度旋转。

我的尝试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var parent, renderer, scene, camera, controls;

init();
animate();

function init()
{
    // renderer
    renderer = new THREE.WebGLRenderer();
    renderer.setSize(window.innerWidth, window.innerHeight);
    document.body.appendChild(renderer.domElement);

    // scene
    scene = new THREE.Scene();

    // camera
    camera = new THREE.PerspectiveCamera(40, window.innerWidth / window.innerHeight, 1, 100);
    camera.position.set(20, 20, 20);

    // controls
    controls = new THREE.OrbitControls(camera);
    controls.minDistance = 10;
    controls.maxDistance = 50;

    // axes
    scene.add(new THREE.AxisHelper(20));

    // geometry
    var geometry = new THREE.SphereGeometry(0.3, 50, 50, 0, Math.PI * 2, 0, Math.PI * 2)
    // material
    var material = new THREE.MeshBasicMaterial({
        color: 0xffffff,
        wireframe: true
    });

    // parent
    parent = new THREE.Object3D();
    scene.add(parent);

    // pivots
    var pivot1 = new THREE.Object3D();
    var pivot2 = new THREE.Object3D();
    var pivot3 = new THREE.Object3D();
    var pivot4 = new THREE.Object3D();
    pivot1.rotation.z = 0;
    pivot2.rotation.z = 2 * Math.PI / 3;
    pivot3.rotation.z = 4 * Math.PI / 3;
    pivot4.rotation.z = 6 * Math.PI / 3;
    parent.add(pivot1);
    parent.add(pivot2);
    parent.add(pivot3);
    parent.add(pivot4);

    // mesh
    var mesh1 = new THREE.Mesh(geometry, material);
    var mesh2 = new THREE.Mesh(geometry, material);
    var mesh3 = new THREE.Mesh(geometry, material);
    var mesh4 = new THREE.Mesh(geometry, material);
    mesh1.position.y = 5;
    mesh2.position.y = 5;
    mesh3.position.y = 5;
    mesh4.position.y = 5;
    pivot1.add(mesh1);
    pivot2.add(mesh2);
    pivot3.add(mesh3);
    pivot4.add(mesh4);

}

function animate()
{
    requestAnimationFrame(animate);

    parent.rotation.z += 0.01;

    controls.update();

    renderer.render(scene, camera);
}

为什么我不能在现场添加3个以上的球体?我试图添加第四个球体,但它没有起作用。在这里,速度是如何计算的?那就是:我可以为一些球体指定不同的速度吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-29 13:49:22

丢失第4球

你具体说明:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pivot1.rotation.z = 0;
pivot2.rotation.z = 2 * Math.PI / 3;
pivot3.rotation.z = 4 * Math.PI / 3;
pivot4.rotation.z = 6 * Math.PI / 3;

6 * Math.PI / 3 = 2 * Math.PI

注意,three.js使用弧度,因此2 * PI0 (完全旋转与不旋转相同)。

因此,pivot1和pivot4有相同的有效旋转,而你的2个球体在空间中的位置相同。

速度

您目前处理的速度,变异z旋转的每一帧。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
parent.rotation.z += 0.01;

很明显,这对于一个演示来说是很好的。您可以通过移动更多的每帧(或获得更多的帧,即更好的机器或其他升级)来加快速度。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
parent.rotation.z += 0.04;

现在它以4倍的速度旋转!

多球

一旦您通过使用比手的手指数还要大的计数,我建议使用数组。与其列出pivot1, pivot2, pivot3, . . . pivot0451,不如用一个循环来生成它。(在功能上,如果您愿意,可以使用范围)。

首先,我们宣布要制造多少个球体。然后划分圆(2 * Math.PI弧度来绕)。那么永远的球体,做一个枢轴。然后,对每一个枢轴,添加一个网格。你就完蛋了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var numberOfSpheres = 10;
var radiansPerSphere = 2 * Math.PI / numberOfSpheres;
// pivots
var pivots = [];
for (var i = 0; i < numberOfSpheres; i++) {
  var pivot = new THREE.Object3D();
  pivot.rotation.z = i * radiansPerSphere;
  parent.add(pivot);
  pivots.push(pivot);
}

var meshes = pivots.map((pivot) => {
  var mesh = new THREE.Mesh(geometry, material);
  mesh.position.y = 5;
  pivot.add(mesh)
  return mesh;
});

我在这个codepen.io上实现了这个

编码愉快。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36947341

复制
相关文章
在.NET Core 中收集数据的几种方式
APM是一种应用性能监控工具,可以帮助理解系统行为, 用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题, 通过汇聚业务系统各处理环节的实时数据,分析业务系统各事务处理的交易路径和处理时间,实现对应用的全链路性能监测。
全球技术精选
2021/01/11
1.1K0
在.NET Core 中收集数据的几种方式
在.NET Core 中收集数据的几种方式
APM是一种应用性能监控工具,可以帮助理解系统行为, 用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题, 通过汇聚业务系统各处理环节的实时数据,分析业务系统各事务处理的交易路径和处理时间,实现对应用的全链路性能监测。
全球技术精选
2021/01/09
9280
在.NET Core 中收集数据的几种方式
在中国我们如何收集数据?全球数据收集大教程
以前都是有小伙伴说想找点数据,自己来试试手,想分析出一些好的东西来。现在我们分享这篇文章给大家,也希望大家可以实现一个小的梦想,数据在这里,分析等你来。
IT阅读排行榜
2018/08/16
1.9K0
在中国我们如何收集数据?全球数据收集大教程
.glb格式的模型怎么在three.js中展示
3D软件中导出的格式一般有.obj 和.glb ,下面是blender 2.8.2 生成模型并在three.js中展示的流程
tianyawhl
2020/11/24
15.8K2
.glb格式的模型怎么在three.js中展示
大数据之如何采集数据
浏览器页面采集: 主要是收集页面的 浏览日志(PV/UV等) 和 交互操作日志(操作事件)。
啦啦啦
2018/09/05
1.3K0
在多维数据分析模型的路上越走越远
数据分析和可视化一直是大数据时代的热门话题。如今这一个数据为王的时代,当你使用某个产品,划划手指,动动鼠标,甚至一颦一笑都会被记录下来,送至服务器。然而,大量的数据光收集是没有意义的,就好比资料控在硬盘里放了几百个G的电子书却只收集不阅读一样,如果不分析数据,不可视化,那么数据再多也不过是一堆毫无用处的符号而已。本文转自和途客圈颇有渊源的一位正在创业的朋友的文章,讲述他自己在自百度起,到创立SensorsData,对多维数据分析模型孜孜以求的经历和感悟,供大家参考。感兴趣的,可以尝试他们的服务:sensor
tyrchen
2018/03/28
1.4K0
在多维数据分析模型的路上越走越远
Java 在PDF中添加表格
本文将介绍通过Java编程在PDF文档中添加表格的方法。添加表格时,可设置表格边框、单元格对齐方式、单元格背景色、单元格合并、插入图片、设置行高、列宽、字体、字号等。 通过maven导入 地址 代码如下:
崔笑颜
2020/06/08
4.6K0
【商务智能】数据仓库 ( 多维数据模型 | 多维数据分析 )
【商务智能】数据预处理 【商务智能】数据仓库 ( 多维数据模型 | 多维数据分析 )
韩曙亮
2023/03/29
6860
在PHP中灵活使用foreach+list处理多维数组
先抛出问题,有时候我们接收到的参数是多维数组,我们需要将他们转成普通的数组,比如:
硬核项目经理
2020/01/02
3.6K0
多维数据库
  多维数据库(Multi Dimensional Database,MDD)可以简单地理解为:将数据存放在一个n维数组中,而不是像关系数据库那样以记录的形式存放。因此它存在大量稀疏矩阵,人们可以通过多维视图来观察数据。多维数据库增加了一个时间维,与关系数据库相比,它的优势在于可以提高数据处理速度,加快反应时间,提高查询效率。
用户1148526
2019/05/25
1.1K0
在 Xcode 中添加 Swift package 依赖
到目前为止,我们一直在编码的所有内容都是我们从头开始构建的内容,因此您可以确切地了解其工作原理并将这些技能应用于自己的项目。但是,有时候,从头开始写东西是有风险的:也许代码很复杂,也许很容易出错,也许它经常更改,或者其他各种原因,这就是模块依赖存在的原因——能够获取第三方代码并在我们的项目中使用它。
韦弦zhy
2020/09/18
7K0
在 Xcode 中添加 Swift package 依赖
在vim 中批量添加注释
批量注释: Ctrl + v 进入块选择模式,然后移动光标选中你要注释的行,再按大写的 I 进入行首插入模式输入注释符号如 // 或 #,输入完毕之后,按两下 ESC,Vim 会自动将你选中的所有行首都加上注释,保存退出完成注释。
程序员小涛
2020/12/03
15.7K0
在AMD PetaLinux中添加命令pstree
命令pstree将相关进程以树状图显示,方便查看进程间的关系。由于调试需要,需要在Linux里使用命令pstree。但是PetaLinux产生的Linux映像,默认不带命令pstree。
hankfu
2023/10/16
2500
Python 在 Wiki 标记中添加无
Python编程快速上手实践项目题目,欢迎指证与优化! 代码: #! python3 # bulletPointAdder.py - Adds Wikipedia bullet points to the start # of each line of text on the clipboard. import pyperclip text = pyperclip.paste() # 从剪贴板粘贴文本 lines = text.split('\n') # 使用 split()方法得到一个字符串的列表,以回
py3study
2020/01/09
2.9K0
在Systrace中添加 mutex lock owner
在多线程的debug中,如果线程相互deak lock是很头痛的事情。下面的patch 可以把lock的owner 信息在ftrace 中记录,并且在systrace 中显示出来,可以加快对问题的debug
用户9732312
2022/05/13
2.4K0
在Systrace中添加 mutex lock owner
在HTML中添加背景音乐[通俗易懂]
说明:1、使用autoplay=”autoplay”,则背景音乐将在音网页打开后就自动马上播放。
全栈程序员站长
2022/09/15
5.7K0
Java 在 PDF 中添加表单域
PDF表单域是指用户在PDF文件中可以自主进行填写、选择等操作的区域,其主要目的是采集用户输入或选择的数据。常见的表单域包括文本框、单选按钮、复选框、列表框和组合框等。文本将介绍如何使用 Free Spire.PDF for Java在Java程序中创建PDF表单域。
用户1289394
2020/12/18
3.9K0
Django Sqlite 数据库,在已有表中添加新字段
可以通过 migrate 传递上一次迁移的编号来撤销迁移。 例如,要撤销最近一次迁移 0020_auto_20220520_1511,进入迁移文件,找到dependencies中信息
沈宥
2022/06/21
4K0
Django Sqlite 数据库,在已有表中添加新字段
数据科学基础(八) 多维
📚 文档目录 随机事件及其概率 随机变量及其分布 期望和方差 大数定律与中心极限定理 数理统计的基本概念 参数估计 假设检验 多维 回归分析和方差分析 降维 8.1 多维概率分布 分布函数: F(x,y) = P\{X \leq x,Y \leq y\} 密度函数: \displaystyle f(x,y) = \frac{\partial F}{\partial x\partial y} 边缘分布: 设 (X, Y) 为二维随机变量,称一维随机变量 X 或 Y 的概率分布为二维随机变量 (X, Y) 关于
Rikka
2022/01/19
7550
数据科学基础(八) 多维
点击加载更多

相似问题

从多维数组中收集数据?

24

在Python中为多维数据集数字创建循环

34

在Three.js中旋转多维数据集

112

在c#中将多维数据集数据转换为dataTable

11

创建一个多维数据集数组

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文