我有一个带有一些二进制数据的缓冲区:
var b = new Buffer ([0x00, 0x01, 0x02]);
Run Code Online (Sandbox Code Playgroud)
而且我想补充一下0x03.
如何附加更多二进制数据?我在文档中搜索但是为了追加数据它必须是一个字符串,如果没有,就会发生错误(TypeError:Argument必须是一个字符串):
var b = new Buffer (256);
b.write ("hola");
console.log (b.toString ("utf8", 0, 4)); //hola
b.write (", adios", 4);
console.log (b.toString ("utf8", 0, 11)); //hola, adios
Run Code Online (Sandbox Code Playgroud)
然后,我在这里看到的唯一解决方案是为每个附加的二进制数据创建一个新的缓冲区,并将其复制到具有正确偏移量的主缓冲区:
var b = new Buffer (4); //4 for having a nice printed buffer, but the size will be 16KB
new Buffer ([0x00, 0x01, 0x02]).copy (b);
console.log (b); //<Buffer 00 01 02 00>
new Buffer ([0x03]).copy (b, 3);
console.log (b); …Run Code Online (Sandbox Code Playgroud) 我一直在处理 3D 空间(X、Y、Z)中的点,并希望能够计算其中两个点之间的俯仰和偏航。
我目前的代码:
pitch = (float) (1/Math.tan((Y1 - Y2) / (Z1 - Z2)));
yaw = (float) (1/Math.tan((X1 - X2) / (Z1 - Z2)));
Run Code Online (Sandbox Code Playgroud)
其中 X1、X2、Y1、Y2、Z1、Z2 直到运行时都是未知的,此时它们是从两个随机生成的点中收集的。
但出于某种原因,我的结果完全错误,我尝试了许多不同的组合,并在谷歌上搜索了无数东西,但一无所获。
一些限制是:
这是我第一次使用 3D 角度,我读过可以在两个不同的 2D 平面上分别计算俯仰和偏航,就像我的例子一样,但这不起作用。
非常感谢任何帮助。
因此,我已经阅读了许多不同的方法,从字符串调用函数,使用window[]();和eval();.我想知道我的情况(即下面)是什么方法才是正确的方法,如果是的话,解释原因.还解释了为什么eval();不是一个很好的选择,很多人都说安全性,但如果你能获得任何能够让你更改该页面上的脚本的浏览器插件,为什么安全性会成为一个问题呢?(例如:firefox的firebug)
我目前的代码:
funcOne(target).funcTwo(x, y, z);
Run Code Online (Sandbox Code Playgroud)
如何使用推荐的window[]();方式调用此方法?为什么我不能用这个?:
eval('funcOne(target).funcTwo(x, y, z)');
Run Code Online (Sandbox Code Playgroud)
我不希望你多次问这个问题的烦恼,因为我现在想不出一种方法来调用一个叫做双重函数的方法.
提前致谢!