小编gma*_*man的帖子

如何使用mocha运行一些初始化代码

我知道before,beforeEach,afterafterEach,但我怎么运行所有测试前,一些代码.

换句话说,我这样的文件

test
  test1.js
  test2.js
  test3.js
Run Code Online (Sandbox Code Playgroud)

我用它来运行测试

mocha --recursive
Run Code Online (Sandbox Code Playgroud)

我不想before在每个测试文件中放入一个.在执行任何测试之前,我需要一个beforeAllTests或一个--init=setup.js可以执行一些JavaScript的东西.在这种特殊情况下,我必须在测试运行之前配置我的系统的日志记录模块

有没有办法调用一些在所有测试之前执行的init函数?

javascript mocha.js

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

在Babylon.js中加载.obj和.stl

我想使用Babylon.js加载一个由用户上传的文件.我环顾四周但只能找到加载巴比伦场景文件的例子.

有没有办法直接用Babylon.js加载.obj和/或.stl文件而不必将它们转换为.babylon文件?

谢谢.

babylonjs

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

如何使用本地eslint插件来使用本地安装的eslint

根据文档插件应该工作,如果他们是名为"eslint-plugin-"的npm模块

这是一个遵循该模式的插件.来源就在这里.

所以,我们制作了一个新项目

md foo
cd foo
npm init
... answer questions ..
npm install --save-dev eslint
npm install --save-dev eslint-plugin-require
echo "define(function(){});" > test.js
echo "{\"rules\":{\"require\": 2}}" > conf.json
node node_modules/eslint/bin/eslint.js -c conf.json --plugin eslint-plugin-require test.js
Run Code Online (Sandbox Code Playgroud)

产生

~/node_modules/eslint/lib/eslint.js:569
                throw new Error("Definition for rule '" + key + "' was not
                      ^
Error: Definition for rule 'require' was not found. 
Run Code Online (Sandbox Code Playgroud)

将配置更改为

echo "{\"rules\":{\"eslint-plugin-require\": 2}}" > conf.json
Run Code Online (Sandbox Code Playgroud)

也不

echo "{\"rules\":{\"require-define\": 2}}" > conf.json
Run Code Online (Sandbox Code Playgroud)

也不

echo "{\"rules\":{\"require-require-define\": 2}}" > …
Run Code Online (Sandbox Code Playgroud)

javascript node.js eslint

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

渐变clearColor in threejs

我可以在threejs中获得一个可靠的clearColor,但有没有办法实现渐变clearColor.或者用一些类似的方法在我的天空中实现更深的深度,也许还有灯光?

这是我的相关代码:

renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.setClearColor( 0x3dc800 );

var light = new THREE.HemisphereLight( 0xffffff, 0xeeeeee, 0.75 );
  light.position.set( 0.5, 1, 0.75 );
  scene.add( light );

scene.fog = new THREE.Fog( 0x4ff904, 0, 750 );
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

javascript three.js

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

如何将flexbox底部元素的内容设置为其容器的100%高度

如果我创建一个带有2个子项和列流的flexbox,并将第二个子项设置为第二个子项,flex-grow 1则展开以填充flexbox.这有效

(ps:不想用safari支持来混淆这个例子,所以使用Chrome或Firefox)

* {
  box-sizing: border-box;
}
html, body {
  margin: 0;
  width: 100%;
  height: 100%;
  color: white;
}
#outer {
  display: flex;
  flex-flow: column;
  height: 100%;
}
#top { 
  background-color: red;
}
#bottom {
  background-color: blue;
  flex: 1 0 auto;
}
Run Code Online (Sandbox Code Playgroud)
<div id="outer">
  <div id="top">top</div>
  <div id="bottom">bottom (blue)</div>
</div>
  
Run Code Online (Sandbox Code Playgroud)

但是,如果我然后将一个孩子#inside放在里面#bottom并将其高度设置为100%,即使Flexbox已拉伸,它也不会增加其高度以匹配#bottom.

添加了CSS

#inside {
  background-color: green;
  height: 100%;
}
Run Code Online (Sandbox Code Playgroud)

HTML

<div id="outer">
  <div id="top">top</div>
  <div id="bottom">
    <div id="inside">inside</div>  <!- added -> …
Run Code Online (Sandbox Code Playgroud)

html css flexbox

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

为什么在这种情况下v8会耗尽内存?

根据node.js文档,节点在32位版本上具有512meg限制,在64位版本上具有1.4gig限制.Chrome AFAICT的限制类似.(+/- 25%)

那么,为什么当代码永远不会使用超过424美分的内存时,这段代码会耗尽内存?

这是代码(代码是无意义的.这个问题不是代码在做什么,而是关于代码失败的原因).

var lookup = 'superCaliFragilisticExpialidosiousThispartdoesnotrealllymattersd';
function encode (num) {
  return lookup[num];
}

function makeString(uint8) {
  var output = '';

  for (var i = 0, length = uint8.length; i < length; i += 3) {
    var temp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);
    output += encode(temp >> 18 & 0x3F) + encode(temp >> 12 & 0x3F) + encode(temp >> 6 & 0x3F) + encode(temp & 0x3F);
  } …
Run Code Online (Sandbox Code Playgroud)

javascript garbage-collection google-chrome v8 node.js

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

Three.js - 如何获得相对于原点的相机位置

这个问题的标题可能有点含糊,但我不知道如何用一句话来表达。

基本上我遇到了这种情况:场景中有一个透视相机和一个网格。网格不以轴的原点为中心。

相机直接指向这个对象的中心,它的位置(我的意思是 Three.js 相机对象的“位置”属性)是相对于对象中心的位置,而不是原点;所以它在另一个坐标系中工作。

我的问题是:如何获得相机的位置,而不是相对于对象中心,而是相对于“全局”坐标系的原点?

澄清一下,情况是这样的。在此图像中,您可以看到位置远离坐标系原点的手部网格。相机直接指向手的中心(所以从相机的角度来看的原点是手的中心),如果我打印它的位置,它会给我这些值:x:-53.46980763626004;y:-2.7201492246619283;z:-9.814480359970839 而实际上我想要相对于坐标系原点的位置(因此在这种情况下,值会不同;例如,y 值将为正)。

更新: 我尝试了@leota 的建议,所以我以这种方式使用了 localToWorld 方法:

var camera = scene.getCamera();
var viewPos = camera.position;
var newView = new THREE.Vector3();
newView.copy(viewPos);
camera.localToWorld(newView);
Run Code Online (Sandbox Code Playgroud)

我用这个网格做了一个实验。正如你所看到的,这个网格也没有以原点为中心(你可以看到左下角的轴)。如果我打印相机位置的正常值(因此,相对于网格的中心),它会给我以下结果:x: 0; y:0;z: 15

如果现在我在上面的代码之后打印结果值,结果是:x: 0; y:0;z: 30

这是错误的,因为您可以看到图像中的相机位置的 x 和 y 值明显不同于 0(而 z = 30 可能是真的,据我所知)。

例如,如果我旋转相机,使其非常靠近原点,就像这样(在图像中相机就在原点后面,因此它在世界坐标中的位置应该为 x、y、z 的负值),坐标关于物体的中心是:

x:-4.674180744175711;y:-4.8370441591630255;z:-4.877951155147168

而在上面的代码之后,它们变成了:

x:3.6176076166961373;y:-4.98753160894295;z:-4.365141278155379

y 和 z 值甚至可能一目了然,但 x 的正值告诉我这是完全错误的,我不知道为什么。

我将继续寻找解决方案,但这可能是朝着正确方向迈出的一步。不过,任何更多的建议表示赞赏!

更新 2:

找到了解决办法。@leota 说的是正确的,这确实是您获得相机绝对坐标的方式。不过,就我而言,我终于发现项目代码中隐藏了一行代码,该代码根据某些规则(与项目相关)缩放所有内容。因此,我的解决方案是按原样获取相机位置,然后根据该规则将其缩小。

由于@leota 的答案确实是原始问题的解决方案,因此我接受它作为正确的答案

javascript 3d coordinate-systems three.js

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

如何设置 defaultValue,value={this.props.value},并使用 React 更新文本输入的值?

概括:

我正在尝试使用 React 制作博客,但似乎在设置和更新文本字段时遇到了障碍。我有来自数据库的博客文本和用户名,并希望在文本窗口中为给定用户设置博客文本。然后当用户键入时,我也想更新该文本。

试图:

如果我设置我的 textarea value={this.props.name}它将正确设置该值但不会更新。如果我将它设置为更新,{this.state.value}那么它开始时为空白,但会正确更新。我可以找到有关如何设置默认值或更新值的示例。我无法弄清楚如何做到这两点。先感谢您。

应用程序内的 ClickScreen React 组件调用

<ClickScreen
    setClicks={this.setClicks}
    setUsername={this.setUsername}
    setBlog={this.setBlog}
    onLogout={this.onLogout}
    counter={this.state.counter}
    blogtext={this.state.blogtext}
    username={this.state.username}
/>
Run Code Online (Sandbox Code Playgroud)

在 ClickScreen 页面中的 BlogEntry React 组件调用:

<EditBlog name={this.props.blogtext} username={this.props.username} ></EditBlog>
Run Code Online (Sandbox Code Playgroud)

EditBlog 反应组件

// Allows a user to edit a blog entry.
var EditBlog = React.createClass({
  displayName: 'Editor',
  propTypes: {
    name: React.PropTypes.string.isRequired
  },
  getInitialState: function() { 
    console.log("getInitialState value: " + this.props.name);
    return {
      value: this.props.name,
    };
  },
  componentDidMount: function() {
         this.setState({value: this.props.name});
  },
  handleChange: function(event) { …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

从矢量 3 点数据在 3D 模型上创建热图

我正在尝试在从 OBJ(或 STL)加载的 3D 模型之上渲染平面、动态创建的热图。

我目前正在使用 Three.js 加载和渲染 OBJ。我有 Vector3 点,目前正在将其绘制为简单的红色立方体(下图)。这些数据点都被光线投射到我的 OBJ 网格上并且位于表面上。Vector3 点是从外部数据源加载的,并将根据正在查看/收集的数据而变化。

点

我想将我的 vector3 点数据渲染到 OBJ 表面的热图中。以下是一些示例,说明了我试图实现的视觉效果类型:

例子1

例子2

例子3

例子5

我觉得顶点着色是实现此目的的方法,但我的问题是我的 OBJ 模型没有足够的曲面细分来执行此操作。正如你所看到的,每张脸上都有许多红点。我正在努力寻找一种方法来在我的对象网格上绘制与我的红点数据完全相同的颜色。我假设我需要将随机向量 3 点转换为网格,但找不到方法来执行此操作。

我已经研究过生成纹理的可能性,但是 1)我没有 OBJ 的 UV 贴图,也没有找到以编程方式生成它们的方法,2)我对如何关联向量 3 点有点迷失数据到 UV 点。

我考虑过使用着色器,但我的 vector3 点数据对于使用着色器来说似乎太大了(可能有数十万个点)。我还觉得每帧渲染热图并不是正确的方法,而宁愿只在加载时渲染一次。

我研究了点云和行进立方体算法的等值面,但我认为这不是正确的方向,因为只有我的数据有点像点云,而且我不确定如何保持这种平滑沿着我的 OBJ 网格的表面。

虽然我更愿意将所有内容保留在 JavaScript 中以便在浏览器中查看,但我愿意使用 REST 以任何语言/程序进行服务器端处理,只要它可以在无需人工干预的情况下实现自动化,并推送回浏览器进行渲染。

任何建议或指导表示赞赏。

data-visualization heatmap point-clouds three.js

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

用于构建 Pixi Spritesheet 的数据需要什么格式?

我想利用PIXI.Spritesheet某种纹理或精灵集合来在 pixi 应用程序中使用。

let spritesheetTexture = PIXI.utils.TextureCache["my-spritesheet-image.png"];
let data = ??????
let spritesheet = new PIXI.Spritesheet(spritesheetTexture, data);
Run Code Online (Sandbox Code Playgroud)

不幸的是,除了“对象”和“Spritesheet 图像数据”之外, pixi 文档没有给出参数需要采用什么格式的指示data。我也找不到此类的任何实际例子。

javascript pixi.js

6
推荐指数
2
解决办法
2575
查看次数