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:一种可能性是使用
http://p2js.gelicon.biz/en/将 pascal 转换为 javascript 。还没有成功。p2js.exe clipper.pas
给出致命错误“找不到裁剪器使用的单位系统”。
编辑:我找到了script# ( Github ),它似乎能够将 C# 转换为 Javascript。Clipper lib 在 C# 中可用,那么是否可以使用 Script# 进行 C#->JS 转换以及如何进行?
EDIT3:没有用 script# 转换,但也有 Emscripten,但 4000 cpp 行转换为 300 000 Javascript 行,所以不是一个选项。手动转换似乎是王道。
EDIT2:我做了一个例子,它显示了问题。使用左右箭头应用偏移。在一定距离内它工作正常,但随后出现问题。黄色描边多边形就是所谓的原始偏移多边形,AFAIK Clipper lib 提供了一种方法来删除原始偏移多边形中不需要的部分。
Angus Johnson 有一个 Clipper 库,用于偏移多边形。
我需要 Javascript 中的这个功能来抵消 SVG 多边形。
有人制作了它的 Javascript 端口吗?
如果没有,我会很感激一些指导方针,例如。以下内容:
- 这将是多么艰巨的任务?
- 选择哪一个作为源代码(Delphi、C#、C++)?
- lib 中的所有内容都需要抵消吗?
Clipper 库产生以下结果,这些结果正是所需的功能:
一些链接:
- Sourceforge 中的文件
- Clipper 文档
- Stackoverflow 的一个答案
-偏移算法