小编fun*_*487的帖子

如何使相机适合对象

使用three.js我有以下内容.

  • 包含多个Object3D实例的场景
  • 几个预定义的摄像头Vector3位置
  • 如果屏幕调整大小,画布的动态宽度/高度
  • 用户可以选择一个对象(从上面)
  • 用户可以选择摄像机位置(从上方)

给定正在查看的对象和摄像机位置,他们选择如何计算最终摄像机位置以"最佳地适应"屏幕上的对象?

如果在某些屏幕上"按原样"使用摄像机位置,则对象会在我的视口边缘流血,而其他位置则显得较小.我相信可以将物体安装到相机平截头体上,但却找不到合适的物体.

javascript three.js

36
推荐指数
5
解决办法
3万
查看次数

如何使用三个JS为Camera.lookAt设置动画

我有一个场景,呈现一个有几个对象的板.单击其中一个对象并使用对象拾取,我可以获取对象并为摄像机位置设置动画,使其位于对象的"俯视"视图中.然后使用camera.lookAt方法我可以强制相机直接查看对象.

我在动画开始时注意到在onUpdate方法中调用camera.lookAt时的快速跳转,因为它最初有一个很大的距离来旋转以查看所选对象.相比之下,每次对camera.lookAt的调用都很小,而且动画效果很好.

// Position the camera to fit
var tween = new TWEEN.Tween(camera.position).to({
    x: selectedObject.position.x,
    y: selectedObject.position.y,
    z: 1
}).easing(TWEEN.Easing.Quadratic.InOut).onUpdate(function() {
    camera.lookAt(selectedObject.position);
}).onComplete(function() {
    camera.lookAt(selectedObject.position);
}).start();
Run Code Online (Sandbox Code Playgroud)

有没有办法动画方法或我必须手动转换相机的矩阵值来查看我选择的对象?

这是一个例子的小提琴.它使用WebGLRenderer,因此请使用合适的浏览器.

http://jsfiddle.net/fungus1487/SMLwa/

谢谢你的帮助.

webgl three.js

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

将节点添加到D3 Tree v4

我正在使用D3 v4来构建一棵树.

小提琴:https: //jsfiddle.net/a6p​​Lqpxw/

我现在正在尝试添加对从所选节点动态添加(和删除)子项的支持.

但是,如果不进行完整的重绘,我无法重绘图表.我修改了可折叠树图代码中的代码:https://bl.ocks.org/d3noob/43a860bc0024792f8803bba8ca0d5ecd

具体而言,以下块不会重新计算其子项的布局.

document.getElementById('add-child').onclick = function() {
  console.log(selected);
  selected.children.push({
    type: 'resource-delete',
    name: new Date().getTime(),
    attributes: [],
    children: []
  });

  update(selected);
};
Run Code Online (Sandbox Code Playgroud)

有没有人有任何在D3.js v4中动态添加/删除节点的好例子?

javascript tree d3.js

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

对象溢出剪辑三个JS

无论如何使用三个j来定义对象的剪切区域?我有一个包含子对象的父对象,我想根据视口剪切子对象.

就像是...

// Create container and children
var container = new THREE.Object3D();
for(var i = 0; i < 100; i++) {
    var geometry = new THREE.PlaneGeometry(i, 0, 0);
    var material = new THREE.MeshBasicMaterial({color: 0x00ff00});
    var child = new THREE.Mesh(geometry, material);
    container.add(child);
}

// Create bounding box which is my viewport
var geom = new THREE.Geometry();
geom.vertices.push(new THREE.Vector3(0, 0, 0));
geom.vertices.push(new THREE.Vector3(10, 0, 0));
geom.vertices.push(new THREE.Vector3(10, 1, 0));
geom.vertices.push(new THREE.Vector3(0, 1, 0));
geom.computeBoundingBox();

// Magic property (THIS DOESNT EXIST)
container.clipRegion = …
Run Code Online (Sandbox Code Playgroud)

webgl three.js

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

实体框架COUNT性能差

使用带有MySql Connector 6.6.6.0的Entity Framework 5.0进行基于计数的查询时,我们遇到的性能非常差.我们的数据结构如下:

Table: Post
===========
ID           INT PRIMARY KEY
MemberID     INT NOT NULL
SiteID       INT NOT NULL
Description  VARCHAR(255) NOT NULL
Image        VARCHAR(255) NOT NULL
CreatedDate  DATETIME NULL

并使用具有linq查询的实体框架,如下所示:

var count = entities.Post.Where(p => 
    p.SiteID == 1 && p.CreatedDate != null).Count();

我们得到以下生成的SQL:

SELECT
`Extent1`.`ID`, 
`Extent1`.`MemberID`, 
`Extent1`.`SiteID`, 
`Extent1`.`Description`, 
`Extent1`.`Image`, 
`Extent1`.`CreatedDate`
FROM `Post` AS `Extent1`
 WHERE (`Extent1`.`SiteID` = 1) AND (`Extent1`.`CreatedDate` IS NOT NULL)

这会读取所有记录并将其计入内存中......效率极低,因为它应该类似于:

SELECT COUNT(ID) FROM `Post` WHERE `SiteID` = 1 AND `CreatedDate` IS NOT NULL;

反正有没有提示我们不想将所有记录读入内存并只执行SQL …

c# entity-framework entity-framework-5 entity-framework-6

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

.Net 连接池 MySQL 临时表

我们有一个 MySQL 数据库,用于我们的 .NET MVC Web App。我们实现了连接池,因为它具有一些巨大的性能优势。

我们还在一些关键存储过程中完成了一些相当繁重的处理。

他们创建了几个临时表和用户变量,它们在连接的生命周期内保持有效。但是,启用池后,这些对象不会被重置/杀死。

在这种情况下,我应该重新初始化用户变量并删除/重新创建临时表吗?

保证不会同时访问连接,因此当两个 SP 正在执行/填充临时表等时,我不应该有任何并发​​问题。

.net mysql database-connection

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

如何在 AWS EC2 上的 Windows 中查找驱动器的 EBS 卷 ID

我们有几个 EC2 实例,每个实例都有多个驱动器。当有多个驱动器在一起时,在 AWS 控制台中监控哪个驱动器是正确的驱动器会变得令人困惑。

命名约定可以在一定程度上帮助实现这一点。

但是有没有办法在 EBS 磁盘的窗口中获取卷 ID(或某些标识符),以便可以在 AWS 控制台中找到它?

amazon-ec2 amazon-ebs amazon-web-services

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

捕捉 Vue.js 警告以进行单元测试所需的属性

我们正在将一个非常大的项目移植到 Vue.js 中,并希望在我们进行时彻底实现我们的单元测试套件。

我们想验证组件是否在创建时设置了所有必需的属性,我的测试用例如下所示:

describe('Input', () => {
  it('fail initialization with no value', () => {
    const vm = mount(Input, {
      propsData: {},
    });

    // expecting above to fail due to required prop 'value'
  });
});
Run Code Online (Sandbox Code Playgroud)

该组件Input应包含一个属性value。我可以通过控制台发出的警告看到它丢失了,但我们希望在我们的单元测试中捕获它。直接测试这没有多大意义,但是一旦我们有组件嵌套多个组件,确保每个组件正确初始化其子组件很重要,这是通过向我们保证上述测试应该失败并被捕获失败来实现的。

然而,没有例外,我们有想法可以挂钩,Vue.warnHandler但这似乎只是确认构造函数按预期工作的大量工作。

是否有推荐的方法来使用 Vue.js 执行此操作?

javascript mocha.js typescript vue.js vue-test-utils

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