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