Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用三维点弯曲平面_Javascript_D3.js_3d - Fatal编程技术网

Javascript 如何使用三维点弯曲平面

Javascript 如何使用三维点弯曲平面,javascript,d3.js,3d,Javascript,D3.js,3d,我真的不知道如何描述这个,但我想要的是有一个像这样的平面,并在上面画一个3d点。该点在[-1,1]之间缩放。然后,平面应调整其他坐标以生成曲线/网。只有一个点作为输入 我通过添加以下代码(之前我重新缩放了该点),成功地用上述示例绘制了该点 但我真的不知道如何变换其他坐标来生成类似黑洞的东西(例如) 我曾考虑过在“0到point.x”和“point.x到1”之间生成抛物线,然后乘以point.y,但我不知道如何将y因子化,以及如何正确缩放 我也愿意用其他方法来更优雅地完成这项工作,因为我不确定d3

我真的不知道如何描述这个,但我想要的是有一个像这样的平面,并在上面画一个3d点。该点在[-1,1]之间缩放。然后,平面应调整其他坐标以生成曲线/网。只有一个点作为输入

我通过添加以下代码(之前我重新缩放了该点),成功地用上述示例绘制了该点

但我真的不知道如何变换其他坐标来生成类似黑洞的东西(例如)

我曾考虑过在“0到point.x”和“point.x到1”之间生成抛物线,然后乘以point.y,但我不知道如何将y因子化,以及如何正确缩放


我也愿意用其他方法来更优雅地完成这项工作,因为我不确定d3是否是正确的工具(我将示例的比例从“-20到20”更改为“0到100”,到目前为止,它似乎非常滞后。)

有许多方法可以生成与您想要的结果类似的高度函数。一个好的方法是高斯分布:


A
B
是正参数
A
定义了“孔”的深度,而
B
与孔的宽度成反比。

3D是很困难的,尤其是如果你是一名新编码人员。二维曲线可以接受吗?我的点是三维的,我需要“可视化”这个点。我对编码和javascript本身非常熟悉,但我上一次做3d是在几年前。
var surfaces=[
{
  name: 'Point',
  data: dataFromFormular(function(x,y){
    if(x == point.x && y == point.y)
        return -point.z;

      return 0;
    })
},
data: dataFromFormular(function(x,y){
       var dx = x - point.x, dy = y - point.y;
       return A * point.z * exp(-B*(dx*dx + dy*dy));
    })