小编Mik*_*ouk的帖子

三个点中的可点击粒子PointCloud

我在three.js的帮助下可视化3d数据点(我通过csv文件读入).我想点击PointCloud中的点来显示这些特定点的其他测量数据.根据实例我发现这显然是可能的,但我没有让它工作.我有以下代码(基本上来自这些示例):

function onDocumentMouseMove(e) {       
    mouseVector.x = 2 * (e.clientX / containerWidth) - 1;
    mouseVector.y = 1 - 2 * (e.clientY / containerHeight);
    var vector = new THREE.Vector3(mouseVector.x, mouseVector.y, 0.5).unproject(camera);
    raycaster.ray.set(camera.position, vector.sub(camera.position).normalize());
    scene.updateMatrixWorld();
    intersects = raycaster.intersectObject(particles);
    console.log(intersects);
}
Run Code Online (Sandbox Code Playgroud)

但是无论我移动到哪一点,相交总是一个空数组.

关于粒子对象,我写了以下内容:

geometry = new THREE.Geometry();        

for (var i = 0; i < howmany; i++) {
    var vector = new THREE.Vector3(data[i][0], data[i][2], data[i][1] );
    geometry.vertices.push(vector);
}

attributes = {
     size: { type: 'f', value: [] },
     customColor: { type: 'c', value: [] } …
Run Code Online (Sandbox Code Playgroud)

javascript three.js raycasting

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

R 中的快速傅里叶变换。我做错了什么?

我不是傅立叶分析专家,完全不明白 R 的函数 fft() 的作用。即使交叉阅读了很多之后我也无法弄清楚。我建立了一个例子。

require(ggplot2)

freq <- 200  #sample frequency in Hz 
duration <- 3 # length of signal in seconds

#arbitrary sine wave 
x <- seq(-4*pi,4*pi, length.out = freq*duration)
y <- sin(0.25*x) + sin(0.5*x) + sin(x)
Run Code Online (Sandbox Code Playgroud)

看起来像:

在此输入图像描述

fourier <- fft(y)

#frequency "amounts" and associated frequencies

amo <- Mod(fft(y))

freqvec <- 1:length(amo) 
Run Code Online (Sandbox Code Playgroud)

我假设 fft 期望在 1 秒的时间跨度内记录向量,因此我除以时间跨度

freqvec <- freqvec/duration 

#and put this into a data.frame

df <- data.frame(freq = freqvec, ammount = amo)
Run Code Online (Sandbox Code Playgroud)

现在我可以/必须省略 data.frame 的后半部分,因为由于奈奎斯特的原因,频率“量”仅对采样率的一半有意义。

df <- …
Run Code Online (Sandbox Code Playgroud)

r fft

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

R:获取排序向量中元素的索引

我有一个排序的矢量,比方说

v <- c(1, 1, 2, 3, 5, 8, 13, 21, 34) 
Run Code Online (Sandbox Code Playgroud)

现在我想找到i比例子大的第一个元素的索引a <- 15.

我可以做点什么i <- which(v > a)[1].

但我想利用v已排序的事实,我不认为这是which关心的事实.

我可以自己编写它并将这个间隔递归地分成两半并在那些部分间隔中搜索...

有没有内置的解决方案?像往常一样,主要问题是速度,我自己的功能肯定会慢一些.

谢谢.

sorting algorithm performance r

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

如何在scala中定义某个递归类型

假设我有一个类型A。如何B在 scala 中定义类型,即Unittuple 或 tuple (A, B)

我想建模一种B[A]可以是

(), (A, ()), (A, (A, ())), (A, (A, (A, ()))), (..., (A, (A, (A, ())))). 
Run Code Online (Sandbox Code Playgroud)

我见过这样的事情

trait B[A] extends (A, B) {}
Run Code Online (Sandbox Code Playgroud)

或示例

`#` 运算符在 Scala 中是什么意思?

但由于Unit缺少终止可能性,因此无法使用我发现的内容。

谢谢你。

recursion types scala

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