双曲面镶嵌Java库

时间:2011-01-30 18:51:31

标签: java graphics pseudocode tessellation

我想知道是否有人知道用多边形曲面镶嵌双曲线平面的好图书馆(我的主要兴趣在于{8,3}曲面细分)。我在这里和那里找到了一些applet,但逻辑与视图的分离在所有这些中都是可怕的。如果有一个库根本不处理图形(因为我不打算使用Swing或创建我自己的applet),这将是完美的,只需要参数:{p,q}和图层计数,然后返回一系列线或点(或多边形对象)。如果最糟糕的情况发生,我将不得不实现自己的库,所以如果有人知道一些详细描述了镶嵌算法的论文,它也可能会有所帮助。

修改

顺便说一下,我应该提到Don Hatch找到了一个看起来很酷的hyperbolic tessellations applet并且一开始很兴奋。然后我看了他声称的source code。在JAR内部,我发现了扩展名为.prejava的文件,并且完全不知道我在看什么 - 它似乎是Java和C代码的混合体。在尝试仔细检查后,我立刻得到了头痛的回报。显然他正在尝试优化Java编译器...或者至少这是我从javacpp的内容中收集到的内容。毋庸置疑,我非常犹豫是否花时间按照他的指示使用C编译器生成Java源文件,哇...

3 个答案:

答案 0 :(得分:3)

http://aleph0.clarku.edu/~djoyce/poincare/PoincareApplet.html有一个小程序。也许你可以阅读代码。

答案 1 :(得分:2)

它可能有点偏离主题,我也在寻找一个干净的,松散耦合的双曲线细分实现。 我发现了poincaré磁盘模型http://haishibai.blogspot.com/2010/07/draw-hyperbolic-geometry-poincare-disc.html

的这种直接实现

我还发现这篇论文有一些伪代码 http://www.d.umn.edu/cs/thesis/ajit_datar_ms.pdf

他们谈论可用的源代码:hyperart http://sourceforge.net/projects/hyperart/但它是一个没有源代码的编译exe。

答案 2 :(得分:0)

另请查看Don和我写的Tyler小程序。单击“双曲线”复选框,然后在“基于曲率”字段中输入“8,8,8”。您还需要选择右侧的“8”单选按钮,以便每次单击都会将八边形添加到最靠近鼠标指针的边缘。您还可以单击数字键以插入具有该数量边的多边形。阅读说明书,您将很快能够构建您可以想象的任何类型的平铺。这可能就是您所需要的全部内容,但该页面上也提供了完整的源代码,并且没有预处理内容。