无论我在做什么,我都不知道它叫什么,但我需要帮助因为我知道它可以用数学来完成。这是我正在构建的模拟,它所扮演的角色很难解释,但它与定义对象的属性有关。 这是我的JavaScript:https://jsfiddle.net/vdocnmzu/
DM.prototype.get = function(coords){
var dist;
val = 0;
for(var j,i = 0; i < this.distortions.length; i += 1){
dist = 0;
for(j = 0; j < coords.length; j += 1){
dist += Math.pow( coords[j] - this.distortions[i].coords[j], 2);
}
dist = Math.pow(dist,.5);
if( dist <= this.distortions[i].range){
val += Math.cos( (dist/this.distortions[i].range) * Math.PI/2 ) * this.distortions[i].amp;//;
}
}
return val;
}
这是怎么回事:我有这个3D立方体,我可以选择x&amp; y,得到Z(灰度像素颜色)。在这个示例代码中,我在多维数据集的整个x,y平面上选择一个点网格。您看到的“气泡”(您可能需要刷新几次)是选择多个点并创建该图像。 我想要做的不是泡泡,而是泡泡之间的有机流动。 现在,z值来自这些3DCube中的每个“失真点”。它可以包含任何数量的这些点。 这些“失真点”不一定是分数。它们可以是点,线或任何类型的基础几何体的集合,以定义某种类型的距离函数的骨架。 我认为距离函数是我正在努力的,因为我只知道如何用积分来做。我觉得线条仍然太僵硬。与曲线相关的数学运算是什么?到曲线的距离?有更多方法吗?如果没有一个好的单一选择,也可以有一个集合。
答案 0 :(得分:1)
你的问题很难理解。整体感觉是你的期望太高了。一些高级数学101可能有所帮助(随意谷歌流行语):
定义曲线是一个非常困难的问题,它挑战了历史上最聪明的数学家。从希腊的朴素方法,通过牛顿和莱布尼兹的微积分,经过欧拉和高斯,到Weisstreiss的数学分析,词曲线改变了几次意义。现在公认的定义是曲线是两个变量中的连续函数,其中连续是一个非常特殊的词,具有19世纪创造的确切含义(天真地是一个函数,从一个值到另一个值没有jumps
)。具有连续性概念的Togheter出现了连通,紧凑,可微(等)曲线的概念,这些曲线为特殊曲线定义了新的条件。该主题发展到现在所谓的拓扑和数学分析。
数学家通常使用定义来复制一类可以带来和思考的想法。令他们惊讶的是,连续性的定义确实包括了奇怪的曲线函数:空间填充曲线,分形!他们当时称他们为怪物。
在介绍完之后,让我们回到你的问题。您需要一个几何对象来计算距离点的距离。让我们避免奇怪的曲线,从连续到可微。现在好多了。例如,可以在泰勒级数中扩展(连通紧致)可微函数,这意味着该类的所有函数都可以写为多项式函数的无限和。在二维中,您需要计算此扩展中涉及的矩阵(许多变量中的微积分是先决条件)。进一步的另一步是在某种程度上截断这个扩展,让我们说3.然后在这种情况下的一般曲线是:ax + by + cx^2 + dy^2 + ex^3 + fy^3 + gx^2y + hxy^2 + ixy + j = 0
(ab ... j是自由参数)。哦!你可能会认为这是合理的。嗯,实际上有这种曲线的名称:deggre 3的代数曲线。这是代数几何的一个活跃的研究主题,即使在数学家中也是如此。一般来说,这些曲线的一般行为有里程碑定理,包括一般情况下允许的奇点和交点。
从本质上讲,你所寻找的东西并不存在,而且是一门非常难的课程。你的算法适用于点(顺便说一下真的很酷的图片)你应该把它变成一条直线。此步骤已经要求您考虑如何计算点和直线之间的距离。这是19世纪一般发展起来的另一个主题,与数学分析有关:公制空间。对这个问题的直接回答是将点和线之间的距离定义为从点到所有线点的最小距离。在这种情况下,可以显示距离是以90度角将点连接到线的矢量的模数。但这只是infinte可能的定义之一。被认为是一个距离(就像我刚刚描述的距离和欧几里德距离),有一组需要验证的公理。您可以使用双曲线度量,离散度量,计算单词,字母,LotsOfFamousPeople度量空间的度量标准......可能性是无限的。 所以,宝贝步骤。用直线和欧几里得最小距离度量来做。使用您在谷歌上找到的其他指标。理解公理并制作自己的公理!进入二次多项式已经是一个很大的挑战,因为你必须要理解那些曲线可以做出的一切(它们可以真正做出奇怪的意外事物)并定义它的距离(度量空间)。
好吧,就是这样!祝你的项目好运。看起来很酷!