jjzjj

javascript - 如何将 "20hc+2a+2hc+9op"之类的字符串表达式减少到 "22hc+2a+9op"

如何在字符串中查找数字后的字母并将其配对以减少一个表达式?假设我们有一个像string="20hc+2a+2hc+9op+330o+10op"这样的字符串,我们想找到数字后面字母相同的对。首先我们应该做split.('+')然后我们得到一个数组[....],然后我们需要在数字后面对每个字母进行配对,以得到类似下面的东西:(20hc+2hc)(2a)(9op+10op)(330o)最后,我们需要对匹配对的数字求和:20+2=22hc2=2a9+10=19op330=330o获得最终结果:22hc+2a+19op+330o那么,我该如何解决这个问题,只要数字后面的字母相同,它们是否未排序也

javascript - Three.js - 如何检查对象是否对相机可见

我很难弄清楚什么是检查Object3d是否对相机的眼睛可见的最佳方法。我在屏幕中间有一个球体。一些立方体随机添加到它的表面上。我需要的是一种方法来检查相机的眼睛可以看到哪些立方体(在球体的前半部分)以及哪些立方体是不可见的(在球体的后半部分)。到目前为止,我所发现的似乎是正确的方向-但我一定遗漏了THREE.Raytracer类的某些内容。这是我正在使用的代码的fiddle:jsfiddle.我已尽力使其尽可能清楚。fiddle的这一部分可能包含错误代码:varraycaster=newTHREE.Raycaster();varorigin=camera.position,direct

javascript - 三.Object3D.add : object not an instance of THREE. Object3D

所以我遇到了这个错误,但我找不到它的来源。我相信这与我在场景中导入和创建3d对象有关,但我不确定我做错了什么。代码如下:我在调用init之前调用此函数functionloadObjects(){loader=newTHREE.JSONLoader();varfloorDiskmaterial=newTHREE.MeshPhongMaterial({map:THREE.ImageUtils.loadTexture('img/floor_test.jpg'),transparent:true,color:0xeaeaea,ambient:0xeaeaea,overdraw:0.5,//sp

javascript - 将几何添加到 THREE.Object3D

我已经编辑了这篇文章以使其更加清晰。好吧,我在这里要做的是表示一个由8个不同三Angular形组成的图block。每个三Angular形都应该能够独立地改变它的颜色。所以,我遇到的问题是,当我更改单个三Angular形的颜色时,它会更改中间线条的颜色,如您在第二张图片中所见。这是创建磁贴的代码:vartile=[];varn=0;for(vari=0;i要更新我使用此代码的Tile三Angular形的状态:for(varj=0;j这是更改Material的正确方法吗?我稍微简化了代码以更好地展示我的问题。但是,真正的代码在这个存储库中https://github.com/tul1/Ti

javascript - three.js OBJLoader 没有加载 react

我正在尝试加载一个对象(.obj)文件以与three.js一起使用并使用react(使用react-three-renderer),但得到一个我的代码如下所示:importReactfrom'react';importReactDOMfrom'react-dom';importReact3from'react-three-renderer';importTrackballControlsfrom'./TrackballControls';import*asTHREEfrom'three';import*asOBJLoaderfrom'three-obj-loader';OBJLoade

javascript - 使用 THREE.Frustum 计算近/远平面顶点

我需要一些帮助来处理THREE.Frustum对象。我的问题:我需要计算近/远平面顶点;我看过这些教程http://www.lighthouse3d.com/tutorials/view-frustum-culling/view-frustums-shape/http://www.lighthouse3d.com/tutorials/view-frustum-culling/geometric-approach-extracting-the-planes/我已经勾画出这个函数完全实现(我希望如此)所解释的过程(只是为了获得左上角/右上角的顶点,假设相机只能向左和向右看)://NearP

javascript - Three.js - 如何反序列化 geometry.toJSON()? (geometry.fromJSON 在哪里?)

我正在尝试将一些Geometry加载和处理卸载到webworker中。要将其发送回主线程,需要对Geometry实例进行序列化,而且Geometry.prototype.toJSON()似乎正是用于此类事情.但我不知道如何在主线程中将该对象变回Geometry实例。应该如何使用toJSON()输出?PS:我看过thisrelatedquestion,但它似乎过时了。toJSON()还没有在API中。接受的答案有点令人费解,并且需要我仍然在主线程中做一些原始工作。 最佳答案 如果我理解正确,问题是:您有一个要作为几何体(obj、STL

javascript - Three.js动态改变光照强度

有没有一种我没见过的方法可以动态改变方向灯的光强度?甚至环境光?ambientLight=newTHREE.AmbientLight(0xffffff);scene.add(ambientLight);directionalLightL=newTHREE.DirectionalLight(0xffffff,dLight,0);directionalLightL.position.set(dlpX,dlpY,dlpZ);scene.add(directionalLightL);所以最初是为了渲染而完成的,但是我怎样才能在之后只改变一个特定的灯光强度呢?删除/重新添加灯?在dom中找到它并

javascript - THREE.JS场景中永无止境的地板

在我的canvasthree.js场景中创建一个各个方向连续的地板的最佳方法是什么?将THREE.PlaneGeometry附加到相机位置是否会更好,以便它与相机一起移动。或者是否有另一种使用纹理对场景的地板进行纹理化的方法。我在PlaneGeometry的可见性方面遇到了一些问题,出于某种原因,我必须与它保持一定距离才能看到它。/*Floor*/vargeometry=newTHREE.PlaneGeometry(1000,1000,1,1);varmaterial=newTHREE.MeshBasicMaterial({color:0x0000ff});varfloor=newTH

javascript - Three.js raycaster 可以与一个组相交吗?

我想知道我的raycaster是否正在查看我加载的OBJ。由于从Cinema4D导出的方式,我相信OBJ是一个有3个child的THREE.Group,而不是THREE.Object。我可以只更改我的raycaster代码行来查找这个组而不是对象吗?raycaster.set(controls.getObject().position,controls.getDirection(),0,40)varintersects=raycaster.intersectObjects(scene.children,true);if(intersects.length>0){//CURRENTLYI