Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 三个JS项目矢量3到屏幕_Javascript_3d_Three.js - Fatal编程技术网

Javascript 三个JS项目矢量3到屏幕

Javascript 三个JS项目矢量3到屏幕,javascript,3d,three.js,Javascript,3d,Three.js,我正在尝试制作一个模型,您可以在其中选择面(并且它们会改变颜色/与模型分离)。我现在要做的是从我选择的脸上获得一个垂直,并将这些坐标投影到屏幕上。我已经搜索过了,但是我发现的大多数问题都使用了不推荐的函数。我确实意识到这个问题看起来像是重复的,但我还没有找到任何解决我问题的方法。 我试图使用3.Vector3中的项目函数,但我得到的坐标总是错误的 这是我正在使用的代码的相关部分: var startPoint = mesh.geometry.vertices[selectedPoly.a].cl

我正在尝试制作一个模型,您可以在其中选择面(并且它们会改变颜色/与模型分离)。我现在要做的是从我选择的脸上获得一个垂直,并将这些坐标投影到屏幕上。我已经搜索过了,但是我发现的大多数问题都使用了不推荐的函数。我确实意识到这个问题看起来像是重复的,但我还没有找到任何解决我问题的方法。 我试图使用3.Vector3中的项目函数,但我得到的坐标总是错误的

这是我正在使用的代码的相关部分:

var startPoint = mesh.geometry.vertices[selectedPoly.a].clone();
startPoint.project(camera);
startPoint.x = (startPoint.x + 1) / 2 * window.innerWidth;
startPoint.y = ( -startPoint.y - 1)  / 2 * window.innerHeight;

我只是想改变我在3d空间中点击鼠标的方式。我可能做错了什么。你能帮我一下吗?

检查一下,或者我两个都看过了,但都不起作用。我得到的坐标相差很远。请尝试调用
startPoint.applyMatrix4(mesh.matrixWorld)project()
之前执行code>。这确实有效。如果你想给出一个解释理由的答案,我很乐意接受