使用 Java,我想计算alpha 形状:给定一组 2D 点,我想找到一个包含所有点的面积最小的多边形列表。这是更多信息。一个纯 Java 解决方案将是理想的。我可以从其他语言移植到 Java 的代码会很好。我宁愿不使用本机包装器。我可以通过合理的努力实现的算法解释也很好。
我真正需要的是构成 alpha 形状多边形的三角形,因此需要额外的功劳。
这个页面有一个很好的 Java 小程序,它带有 GPL 源代码,可以满足您的需求。还有完整的论文进一步描述了该算法。
它不做三角形镶嵌部分,但是一旦你有一个多边形,就有很多可用的库。如果不出意外,openGl 有一个出色的 tessellator,您可以使用或从中提取。
我不确定这些是否是@Geobits 描述的小程序和论文,但是现在可以在此链接中找到一个小程序和一些论文。
然而,这只是你问题的开始。大多数现代浏览器不支持 Java 小程序。这是由于关于 NPAPI 和安全性的问题;有关详细信息,请参见例如这句话之前的链接。这种缺乏默认支持的情况发生在 2015 年秋季左右。
与其详细介绍完整的解决方案,我建议您访问Oracle 关于如何让小程序运行的说明。它展示了如何在 Internet Explorer (IE)、Firefox 和 Safari 中启用小程序(我不知道 Microsoft Edge)。
您甚至无法在 Chrome 中启用 Java。一种解决方法基本上是在 Chrome 中模拟 IE。它在这里描述。
请注意,我使用 IE 和 Firefox 上描述的方法测试了这个小程序,它们都在 Windows 10 上运行。我必须更改 Java 安全设置,如下一段所述。对于 IE,小程序很好用。对于 Firefox,我必须单击左上角看起来像乐高积木的按钮。小程序的一部分工作,但我无法让它允许我插入点。
信不信由你,这还没有结束。您还需要更改 Java 安全设置,以便相关站点可以运行 Java。再一次,Oracle 有一篇文章描述了这一点。查找该Exception Sites List
部分的屏幕截图,当您在计算机上到达该位置时,按下Edit Site List
按钮并按照提示进行操作。您想将http://cgm.cs.mcgill.ca/~godfried/teaching/projects97/belair/alpha.html添加到例外站点列表。
另一种选择是:
http://cgm.cs.mcgill.ca/~godfried/teaching/projects97/belair/
和下载alpha.zip
。您也可以直接访问下载链接:
http://cgm.cs.mcgill.ca/~godfried/teaching/projects97/belair/alpha.zip
导航到您下载它的目录,提取内容,转到新alpha
目录,然后运行
appletviewer Alpha.html
但是,您需要找到 Java 的早期版本——最好是 Java 1.1,但我认为 Java 5 之前的任何东西都可以工作。
祝它运行好运!
更多信息:
https://blog.mozilla.org/futurereleases/2015/10/08/npapi-plugins-in-firefox/
Mozilla 打算在 2016 年底之前取消对 Firefox 中大多数 NPAPI 插件的支持。Firefox 几年前通过手动激活插件开始了这一过程,允许用户仅在必要时激活插件。这一决定反映了其他现代浏览器的行为,例如 Google Chrome 和 Microsoft Edge,它们已经删除了对旧插件的支持。
http://www.ghacks.net/2016/04/11/firefox-drm-and-the-end-of-npapi/
当前支持的最流行的插件是 Adobe Flash 和 Java,但 Firefox 可能会选择更多插件以使其功能可用。
当谷歌停止支持 NPAPI 时,谷歌在 Chrome 45 中踢出了 NPAPI,Mozilla 也宣布将终止支持。
谷歌相对于 Mozilla 的优势在于 Chrome 附带了一个内置于浏览器的 Flash 版本,这意味着最流行的 NPAPI 插件仍然可以在 Chrome 中使用,尽管形式不同。
...
到目前为止,Mozilla 表示对 NPAPI 的支持将在 2016 年底结束,但没有透露确切的时间。
2 月份 Mozilla.dev.tech.plugins 上的一篇文章透露了更新的计划。根据那里发布的信息,Mozilla 计划在 2017 年 4 月发布的 Firefox 53 中删除 NPAPI 支持。
下一个 Firefox ESR(扩展支持版本)版本是 52,将接收一年的安全更新。通过在 Firefox 53( ESR之后的版本)中删除 NPAPI ,需要 NPAPI 支持的用户可以继续切换到 Firefox ESR 52 并继续使用 NPAPI 插件,直到 2018 年 5 月。
选择 Firefox 53 的主要原因是 Firefox 52 是一个新的 ESR 版本。这意味着 ESR 上的任何人都将能够使用 NPAPI 插件,直到不再使用该版本并且不是在 2018 年 5 月之前。
https://java.com/en/download/help/firefox_java.xml
https://support.mozilla.org/en-US/questions/975269
http://news.softpedia.com/news/flash-npapi-support-to-be-removed-in-firefox-53-503777.shtml