小编168*_*807的帖子

如何将多行文本粘贴到nodejs REPL而不发送垃圾邮件终端

我正在通过Linux终端使用nodejs REPL.我有很大一部分代码要粘贴到nodejs中.但是,粘贴代码会导致终端在一段时间内无响应.这是因为REPL使用表达式的每一行吐出以下文本:

Array                 Boolean               Date                  Error                 EvalError
Function              Infinity              JSON                  Math                  NaN
Number                Object                RangeError            ReferenceError        RegExp
String                SyntaxError           TypeError             URIError              decodeURI
decodeURIComponent    encodeURI             encodeURIComponent    eval                  isFinite
isNaN                 parseFloat            parseInt              undefined                 

ArrayBuffer           Buffer                DataView              FMM                   Float32Array
Float64Array          GLOBAL                Int16Array            Int32Array            Int8Array
Uint16Array           Uint32Array           Uint8Array            Uint8ClampedArray     _
assert                buffer                child_process         clearImmediate        clearInterval
clearTimeout          cluster               console               crypto                dgram
dns                   domain                escape                events                fs
global                http                  https                 module                net
os                    path                  process               punycode              querystring
readline              require               root                  setImmediate          setInterval
setTimeout            stream                string_decoder        tls …
Run Code Online (Sandbox Code Playgroud)

node.js

10
推荐指数
1
解决办法
1926
查看次数

为什么javascript比数组结构更快地处理结构数组?

我一直在寻找一种有效的方法来处理javascript中的大型矢量列表.我创建了一套性能测试,使用不同的数据结构执行就地标量向量乘法:

AoS实施:

var vectors = [];
//
var vector;
for (var i = 0, li=vectors.length; i < li; ++i) {
    vector = vectors[i];
    vector.x = 2 * vector.x;
    vector.y = 2 * vector.y;
    vector.z = 2 * vector.z;
}
Run Code Online (Sandbox Code Playgroud)

SoA实施:

var x = new Float32Array(N);
var y = new Float32Array(N);
var z = new Float32Array(N);
for (var i = 0, li=x.length; i < li; ++i) {
    x[i] = 2 * x[i];
    y[i] = 2 * y[i];
    z[i] = …
Run Code Online (Sandbox Code Playgroud)

javascript performance

9
推荐指数
1
解决办法
299
查看次数

填充填充算法选择具有最少邻居数的像素

我正在研究一种板块构造模拟器,它使用改变后的洪水填充算法来检测大陆.算法大致相同.唯一的区别是它适用于顶点而不是像素.

我一直在努力改善这种行为的质量 - 我想看看当它忽略具有两个邻居或更少的大陆地壳的像素/顶点时它的表现如何.是否存在支持此功能的泛洪填充算法的现有变体?

我的(有点简化)代码如下:

var group = [];
var stack = [initialVertex];
while(stack.length > 0){
    var next = stack.pop();
    if (group.indexOf(next) != -1 && isContinental(next)){
        group.push(next);
        stack = stack.concat(getNeighbors(next));
    }
}
return group 
Run Code Online (Sandbox Code Playgroud)

javascript algorithm performance flood-fill

5
推荐指数
1
解决办法
697
查看次数

更新three.js中的ShaderMaterial属性

着色器three.js教程中,我们了解到我们可以更新ShaderMaterial的统一值:

var attributes = {
  displacement: {
    type: 'f', // a float
    value: [] // an empty array
  }
};
var uniforms = {
  amplitude: {
    type: 'f', // a float
    value: 1
  }
};

var vShader = $('#vertexshader');
var fShader = $('#fragmentshader');

// create the final material
var shaderMaterial =
    new THREE.MeshShaderMaterial({
      uniforms:       uniforms,
      attributes:     attributes,
      vertexShader:   vShader.text(),
      fragmentShader: fShader.text()
    });
...

var frame = 0;
function update() {

  // update the amplitude based on …
Run Code Online (Sandbox Code Playgroud)

javascript glsl webgl vertex-shader three.js

5
推荐指数
1
解决办法
5379
查看次数

用户在three.js中上传了纹理

在这里你会找到一个jsFiddle改编的问题.

我想创建一个3d Web应用程序,用户可以在其中选择本地计算机上的图像文件:

<input id="userImage" type="file"/>
Run Code Online (Sandbox Code Playgroud)

选择文件后,图像将作为参数加载到THREE.ShaderMaterial对象中.将glsl着色器应用于图像,并将结果呈现给浏览器中的容器:

$("#userImage").change(function(){
    var texture = THREE.ImageUtils.loadTexture( $("#userImage").val() );
    texture.image.crossOrigin = "anonymous";
    shader.uniforms.input.value = texture;
    shader.uniforms.input.needsUpdate = true;
});
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会导致以下错误:

Cross-origin image load denied by Cross-Origin Resource Sharing policy.
Run Code Online (Sandbox Code Playgroud)

我知道尝试访问WebGL中的跨源资源存在问题,但同时我看到WebGL官方规范中提供了以下解决方法:

以下ECMAScript示例演示了如何为来自其他域的映像发出CORS请求.无需任何凭据即cookie即可从服务器获取映像.

var gl = ...;
var image = new Image();

// The onload handler should be set to a function which uploads the HTMLImageElement
// using texImage2D or texSubImage2D.
image.onload = ...;

image.crossOrigin = "anonymous";

image.src = "http://other-domain.com/image.jpg";
Run Code Online (Sandbox Code Playgroud)

在我的代码中,您看到我已经为图像对象指定了crossOrigin参数,但我仍然收到错误.我的例子与规范有何不同?甚至可以在WebGL中使用本地资源,就像在另一台服务器上托管资源一样?除此之外,还有其他工作要考虑完成任务吗?

javascript opengl-es webgl cors three.js

5
推荐指数
1
解决办法
3479
查看次数

是否有命令在崇高的光标范围之间选择所有内容?

我的情况:

我正在使用Fortran.有时,我想选择一段代码中的所有内容.我很容易选择块的开始/结束元素,因为它看起来像这样:

SUBROUTINE FOO(BAR)
IF (BAR .GT. 1) THEN
    //DO SOMETHING
ENDIF
RETURN
END SUBROUTINE FOO
Run Code Online (Sandbox Code Playgroud)

将光标移动到SUBROUTINE,按Ctrl+D两次,完成.SUBROUTINE关键字的两个实例都会突出显示.

但现在我想在关键字之间选择所有内容SUBROUTINE.我想要一个选择,包括从第一个开始SUBROUTINE到第二个结束的所有内容SUBROUTINE.我更喜欢用语言无关的方式来完成,因为我可以想象这样的情况可能会出现在其他情境中,而且我不想为只在Fortran中工作的东西而累积肌肉记忆.

在sublime中是否有一个命令可以选择多个选择器选择的起始位置和结束位置之间出现的所有文本?

sublimetext sublimetext3

4
推荐指数
1
解决办法
1228
查看次数

是否可以通过连接不同的点使用 Openscad 画一条线?

我经常尝试加入不同的点以在OpenScad 中绘制直线。但我找不到任何方法来划清界限。但是我可以绘制确定的形状,如立方体、球体、圆柱体等......所以请帮助我指导进入正确的程序编码,通过连接不同的点来绘制直线。

3d 3d-modelling openscad openjscad

2
推荐指数
1
解决办法
2900
查看次数

如何在webgl中的渲染过程之间传达高精度的uv坐标?

假设我正在研究WebGL中的一个问题,该问题需要从大纹理(例如,2048x2048)中检索值,并且像素完美精确.

到目前为止,一切对我来说都很有用.我可以将大纹理传递给片段着色器,片段着色器会将其转换为渲染目标,我甚至可以将渲染目标作为另一个渲染过程的输入,始终检索我需要的精确像素.

但现在让我们说我想混淆一下.我想创建一个渲染过程,它返回一个纹理,为我开始使用的大纹理中的每个像素存储一对uv坐标.作为最简单的用例,让我们说:

precision highp float;
precision highp sampler2D;
varying vec2 vUv;

void main() {

    gl_FragColor = vec4(vUv, 0, 1);

}
Run Code Online (Sandbox Code Playgroud)

使用第一个渲染过程返回的uv坐标,我想从我开始使用的大纹理中访问一个像素:

precision highp float;
precision highp sampler2D;
uniform sampler2D firstPass;
uniform sampler2D largeTexture;
varying vec2 vUv;

void main() {

    vec2 uv = texture2D(firstPass, vUv);
    gl_FragColor = texture2D(largeTexture, uv);

}
Run Code Online (Sandbox Code Playgroud)

然而,这并不能以足够的精度工作.我经常从相邻像素获得颜色,而不是我想要解决的像素.从一些修补我发现这只适用于尺寸高达~512x512的纹理.

您将注意到我已在这些示例中指定使用高精度浮点数和采样器2D.这是关于唯一容易想到的解决方案,但这仍然没有解决我的问题.我知道我总是可以依靠寻找具有较低精度的相对坐标系的像素,但我希望为了简单起见,我仍然可以使用uv进行寻址.

shader opengl-es glsl webgl three.js

1
推荐指数
1
解决办法
1437
查看次数