草庐IT

line_three

全部标签

javascript - Three.js THREE.Projector 已移至

我知道版本71中没有THREE.projector(请参阅deprecatedlist),但我不明白如何替换它,尤其是在检测哪个对象已被替换的代码中点击:varvector=newTHREE.Vector3((event.clientX/window.innerWidth)*2-1,-(event.clientY/window.innerHeight)*2+1,0.5);projector.unprojectVector(vector,camera);varraycaster=newTHREE.Raycaster(camera.position,vector.sub(camera.po

javascript - Three.js - 围绕特定 Axis 旋转球体

我有一个问题。在Three.js中,我想围绕倾斜23.5度的Axis旋转一个球体(地球)。我找到了sphere.rotation.x、sphere.rotation.y和sphere.rotation.z,但是当我以正确的比例组合它们时,球体的旋转非常奇怪-它没有永久旋转Axis。我想我需要像sphere.rotation.vector(1,0,-1)这样的函数。有谁知道这个函数是如何调用的以及正确的语法是怎样的?非常感谢您的回答! 最佳答案 您无需了解欧拉Angular或四元数的工作原理即可完成您想要的操作。你可以使用Object

javascript - THREE.js 正交相机缩放到鼠标点

我正在为我们的THREE.js应用开发正交相机。从本质上讲,该摄像头将以2D形式向用户呈现场景(用户可以选择在2D和3D摄像头之间切换)。此相机将允许平移和缩放到鼠标点。我有平移工作,我有缩放工作,但没有缩放到鼠标点。这是我的代码:importReactfrom'react';importTfrom'three';letpanDamper=0.15;letOrthoCamera=React.createClass({getInitialState:function(){return{distance:150,position:{x:8*12,y:2*12,z:20*12},};},ge

javascript - 我可以在 three.js 中隐藏网格的面吗?

我想让网格的一部分在运行时不可见。我可以将这些部分设置为不可见/透明吗?通过改变单个面孔的属性?网格本身仅使用一种Material。示例说明作为编辑理解这个问题:想象一个网格(这里有20个顶点的几何形状),其中四个顶点的每个四边形构建一个Face4。现在,网格的某些部分应该是不可见的(这里有两个面是不可见的)。 最佳答案 注意:此答案适用于three.js的旧版本您可以为每个面指定不同的Material。这是一个示例,其中面共享Material,但有些面是透明的://geometryvargeometry=newTHREE.BoxG

javascript - Three.js - 使用 scale.set() 缩放模型或增加模型大小?

在Three.js(或其他3d渲染器)中缩放3d模型的最佳做法是什么?这是我刚刚遇到的一个例子:我加载了一个模型,发现模型的尺寸太小了。然后我使用mesh.scale.set(2,2,2);缩放网格,它是完美的尺寸。在这种情况下我应该采取什么行动,是让它保持原样缩放(以编程方式缩放)还是返回我的3d建模软件并将模型的大小加倍?谢谢 最佳答案 这不是最佳实践的问题,而是优化的问题。如果你的网格总是被缩放,那么最好在你的建模软件中进行缩放。那个简单的语句mesh.scale.set(2,2,2);是一个矩阵乘法,需要在渲染的每一帧上发生

javascript - 在 textarea 中找到 "line-breaks"是阿拉伯文字换行

我有一个显示在文本区域(从右到左方向)中的文本字符串。用户可以动态调整文本区域的大小(为此我使用jquery),文本将根据需要换行。当用户点击提交时,我将采用该文本并使用PHP创建图像,但在提交之前我想知道“换行符”或“自动换行”发生的位置。到目前为止,我所看到的所有地方都只向我展示了如何在php端处理换行符。我想明确表示没有换行符。我所拥有的是一个LONG字符串,它将根据用户设置的文本区域的宽度以不同的方式进行换行。我不能使用“列”或任何其他标准宽度表示,因为我有一个非常复杂的阿拉伯字体,它实际上由许多不同宽度的字形(字符)组成。如果有人知道一种访问自动换行位置的方法(如果需要,可以

javascript - 使用 Three.js 围绕对象旋转相机

我正在使用WebGlRenderer显示带有Three.js的OBJ元素,现在我想允许用户以任何方向围绕对象旋转相机,我找到了这个答案:RotatecamerainThree.jswithmouse但是两个例子都返回错误,第一个说投影仪没有定义,我不知道“投影仪”是什么意思。我只有一个简单的相机、物体和一些光。第二个代码表示undefined不是一个函数。有人知道如何获得我需要的结果吗? 最佳答案 这就是您想要的:http://threejs.org/examples/misc_controls_orbit.html包括轨道控件(在

javascript - three.js动态画线

这就是我想要实现的(一个可修改的多边形,其中红色圆圈是顶点)并且我想动态构建多边形。初始化几何时vargeometry=newTHREE.Geometry();geometry.vertices.push(point);geometry.vertices.push(point);varline=newTHREE.Line(geometry,newTHREE.LineBasicMaterial({}));它在第二次单击之前一直运行良好,它在1和2之间建立一条直线,但在将其推送到数组时不会添加第三条线。WebGL似乎需要缓冲点。当我像这样预定义顶点时,我可以绘制两条线(第三次单击)varg

javascript - Three.js 中的动态骨骼动画

是否可以通过使用three.js对3D模型的骨骼应用转换来创建动态动画?我尝试移动和旋转SkinnedMesh的骨骼,但网格未更新。loader=newTHREE.JSONLoader();loader.load('/JS-Projects/Virtual-Jonah/Modelos/initialPose.js',functionjsonReady(geometry){mesh=newTHREE.SkinnedMesh(geometry,newTHREE.MeshNormalMaterial({skinning:true}));mesh.scale.set(10,10,10);mes

javascript - 如何在 three.js 中制作加载屏幕?

我有大量的纹理和模型要加载到我的项目中。我正在尝试在加载所有内容时显示进度条。我认为LoadingManager可以满足我的需求,因为它会跟踪所有已加载Assets的进度。我正在使用JSONLoader和TextureLoader。如果有人能告诉我如何在示例代码中实现这一点,那就太棒了。varcamera,scene,renderer;init();animate();functioninit(){camera=newTHREE.PerspectiveCamera(70,window.innerWidth/window.innerHeight,1,1000);camera.positi