这可能是一个非常基本的问题,但我还没有找到解决方案,而且一直困扰着我.我想在Maya中显示指示摄像机右下角的世界坐标方向(x,y,z)的箭头,以便在围绕对象旋转摄像机或在场景中移动时,你仍然可以识别世界坐标的方向.我试图用两种不同的方法来实现这一点,到目前为止都没有.
我有一个带有三个箭头的对象作为使用THREE.ArrowHelper
该类的孩子,我们XYZ
暂时会调用它.第一种方法是制作XYZ
一个场景的孩子,并根据摄像机的当前位置计算出一个位置,加上摄像机指向的方向上的偏移量并进行调整,使其显示在我希望它而不是在中心的角落里的屏幕.我几乎得到了这个工作,因为箭头保持正确的旋转,但位置有点滑稽,我停止沿着这条路线,因为当移动相机时它真的是"紧张".我不确定这是性能问题还是其他问题.
第二种方法是使XYZ
相机的孩子具有局部位置偏移,然后反转相机的旋转并应用反向旋转以XYZ
使其匹配世界坐标.我似乎很接近使用这种方法,但我可以得到正确的位置,或正确的旋转,而不是两者.
我目前正在使用代码XYZ.matrix.extractRotation( camera.matrixWorldInverse );
为我提供正确的方向XYZ
,但它的定位是关闭的.如果我使用,XYZ.matrixWorld.extractRotation( camera.matrixWorldInverse );
那么位置保持正常(连接到相机)但方向不会改变.
如果有人快速破解这项工作,我将不胜感激.如果你有一个比我正在追求的方法更好的方法,那么这也会有所帮助.
** - 编辑 - **应该提一下,你可以在这里找到工作版本 - (https://googledrive.com/host/0B45QP71QXoR0Mm9Mbkp3WGI1Qkk/)我将我的代码存储在谷歌驱动器中,但使用wamp和aliasing在本地工作意味着我在本地进行的任何更改都会在谷歌驱动器同步后立即在线反映出来.IE看起来可能会被打破.
matrix-inverse coordinate-systems rotational-matrices three.js
我知道如何像这样使用 JS 的 getter 和 setter 来处理对象属性
var myObject = {
value : 0,
get property() {
return this.value;
},
set property(v) {
this.value = v;
}
}
Run Code Online (Sandbox Code Playgroud)
这样调用myObject.property = 2
就会设置myObject.value
,但我想知道是否有某种方法可以调用myObject = 2
并且仍然设置myObject.value
而不是myObject
从对象更改为数字。
这可能是不可能的,但 javascript 是一种非常灵活的语言,我想我会在放弃这个想法之前向社区提出这个问题。
NPM安装正确,但我在部署时不断收到此错误.
npm info ok
$ gulp
/bin/bash: line 48: gulp: command not found
ERROR: Job failed: exit code 1
Run Code Online (Sandbox Code Playgroud)
我的.gitlab-ci.yml看起来像这样
image: node:latest
cache:
paths:
- node_modules/
before_script:
- npm install
pages:
stage: deploy
script:
- gulp
artifacts:
paths:
- public
Run Code Online (Sandbox Code Playgroud)
我的package.json包括以下内容
"scripts": {
"install": "gulp",
"test": "gulp test"
},
"devDependencies": {
"gulp": "^3.9.1"
}
Run Code Online (Sandbox Code Playgroud)
而且我知道我的gulpfile.js很好,因为它在本地运行很好,运行我需要的任何一个npm install
或简单gulp
.真的不确定我做错了什么.