【发布时间】:2012-10-26 06:42:57
【问题描述】:
EDIT5:终于用 Javascript 实现了 Angus Johnson 的 Clipper 库,并选择了 Sourceforge 作为主机。
现场演示:http://jsclipper.sourceforge.net/6.1.1.1/main_demo.html
下载源: https://sourceforge.net/projects/jsclipper/
带有分步教程的维基页面: https://sourceforge.net/p/jsclipper/wiki/Home%206/
演示程序的演示,包括数十个示例多边形: https://sourceforge.net/p/jsclipper/wiki/Main_Demo%206/
我希望这对任何需要具有偏移功能的折线和多边形裁剪库的人有所帮助。
EDIT4:一种可能性是使用将 pascal 转换为 javascript
http://p2js.gelicon.biz/en/ 。还没有成功。 p2js.exe clipper.pas 给出致命错误“找不到裁剪器使用的单位系统”。
编辑:我找到了script# (Github),它似乎能够将 C# 转换为 Javascript。 Clipper lib 在 C# 中可用,那么是否可以使用 Script# 进行 C#->JS 转换以及如何进行?
EDIT3:没有用 script# 转换,但也有 Emscripten,但 4000 cpp 行转换为 300 000 Javascript 行,所以不是一个选项。手动转换似乎是王道。
EDIT2:我做了an example,这表明了问题。使用左右箭头应用偏移。在一定距离内它工作正常,但随后出现问题。黄色描边多边形就是所谓的原始偏移多边形,AFAIK Clipper lib 提供了一种方法来处理删除原始偏移多边形中不需要的部分。
Angus Johnson 有一个 Clipper 库,用于偏移多边形。
我需要 Javascript 中的这个功能来偏移 SVG 多边形。
有人制作了它的 Javascript 端口吗?
如果没有,我会很感激一些指导方针,例如。以下:
- 这将是多么艰巨的任务?
- 选择哪一个作为源代码(Delphi、C#、C++)?
- lib 中的所有内容都需要抵消吗?
Clipper 库产生以下结果,这些结果正是所需的功能:
一些链接:
- Files in Sourceforge
- Clipper Documentation
- One Stackoverflow answer
- Offsetting algorithm
【问题讨论】:
-
你不是已经解决了吗? stackoverflow.com/questions/12723832/…
-
有点,但我会欣赏简单的新几何体(多边形)而不是复杂的蒙版结构或相邻的重复对象,这可能不适用于每个平台。
标签: javascript svg geometry script#