我真的不知道如何描述这个,但我想要的是拥有像this这样的平面并在其上画一个3d点。该点在[-1,1]之间缩放。然后平面应该调整其他坐标以生成曲线/网格。只有一点作为输入。
通过添加以下代码(我之前重新调整了点),我设法通过上面的例子绘制了这一点。
var surfaces=[
{
name: 'Point',
data: dataFromFormular(function(x,y){
if(x == point.x && y == point.y)
return -point.z;
return 0;
})
},
但我无法弄清楚如何转换其他坐标以生成看起来像那些黑洞的 thing (例如here)。
我考虑过在“0到point.x”和“point.x到1”之间生成抛物线并乘以point.y,但我不知道如何将y纳入其中以及如何正确地进行缩放。 / p>
我也倾向于采用其他方式更优雅地做到这一点,因为我不确定d3
是否是正确的工具(我将示例的比例从“-20改为20”到“0到100”到目前为止似乎真的很滞后。)
答案 0 :(得分: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));
})
A
和B
是正参数。 A
定义了“洞”的深度,B
与它的宽度成反比。