当前位置: 首页 > 知识库问答 >
问题:

有人能解释一下D3中delaunay实现的alpha过滤吗?

司空奕
2023-03-14

如图所示,您可以使用它来过滤delaunay三角剖分,并获得一个完美的极限。

有人能解释一下Magik算法吗?

共有2个答案

彭浩穰
2023-03-14

Alpha形状是指从delaunay三角剖分中删除任何超过Alpha的边。您可以使用线条或磁盘来直观地显示alpha,但目标是找到一个凹面外壳。阅读这里找到凹面外壳:从Delaunay三角剖分计算alpha形状的边界多边形。

曹乐意
2023-03-14

除了经典的Delaunay三角测量算法之外,没有什么神奇的地方,它在D3中实现为函数d3.geom.delaunay()

在链接到的示例中,alpha形状被实现为修改的Delaunay三角剖分,这样一来,至少有一条边大于alpha(在示例中,它的值为50)的任何三角形都将从三角剖分中删除。

这就是结果如下所示的原因:(原始顶点、Delaunay三角剖分和Alpha形状)

d3。geom。delaunay()返回三角形数组,因此以下代码:

mesh = d3.geom.delaunay(offset(vertices,600,0)).filter(function(t) {
    return dsq(t[0],t[1]) < asq && dsq(t[0],t[2]) < asq && dsq(t[1],t[2]) < asq;
});

再加上asqalpha的平方,以及dsq()是计算平面上两点之间平方距离的函数,导致移除至少一侧大于alpha的任何三角形,这反过来产生上图中的第三个图像。

希望这能有所帮助。

 类似资料:
  • 我想写一个brainfuck口译员,但我错过了一些上下文或其他东西。应该被调用以处理“

  • 我是Hibernate和JPA的新手,我对这个注释有问题。有人能简单地解释一下这个注释到底在做什么吗?因为在这种情况下,文档对我来说很难理解。 编辑我明白什么是持久上下文,但在代码中,我有这样的例子: 我对@PerustenceContext做什么有问题。抱歉,也许我没有具体说明。

  • 抱歉,这是一个非常广泛的问题。 下面的代码是在网上找到的东西的片段。我感兴趣的关键是@protected开头的一行——我想知道这是做什么的,它是如何做到的?在执行do_upload_ajax函数之前,它似乎正在检查有效用户是否登录。这看起来是一种非常有效的用户身份验证方法。不过,我不明白这个@函数的机制——有人能告诉我正确的方向,解释一下这将如何在现实世界中实现吗?Python 3请回答。谢谢。

  • 我见过的唯一一种无效返回类型是系统。出来方法中的println语句。因此,一旦调用了该方法,这些字符串就会被打印出来 您不能创建返回类型字符串并返回字符串,而不是执行void return type吗? 如果无效返回类型方法中有其他方法,您是否可以使返回类型的值,该方法将返回该方法的结果? 什么时候你只能使用无效返回类型?

  • 有人能给我解释一下下面在Java中使用链表实现堆栈的方法吗?链接如下:http://algs4.cs.princeton.edu/13stacks/linkedstack.java.html,下面是代码: 除了需要方法之外,所有内容都很清楚。我不明白的是,为什么在每次操作(例如、)之后,我们都需要检查堆栈中元素的数量和变量(堆栈的大小)是否一致。我们不是一直保持这两个价值观一致吗?我真的不明白方法