在Javascript中抵消多边形

Tim*_*nen 13 javascript geometry svg script#

EDIT5:最后用Javascript实现了Angus Johnson的Clipper库,并为主机选择了Sourceforge.

现场演示:http://jsclipper.sourceforge.net/6.1.1.1/main_demo.html

下载源代码:https: //sourceforge.net/projects/jsclipper/

Wikipage一步一步的教程: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给出致命错误"无法找到限幅器使用的单位系统".


编辑:我发现脚本#(Github),它似乎能够将C#转换为Javascript.Clipper lib在C#中可用,那么可以使用Script#进行C# - > JS转换吗?

编辑3:没有使用脚本#转换,但也有Emscripten,但4000 cpp行转换为300 000 Javascript行,所以不是一个选项.手动转换似乎是一个王道.


编辑2:我做了一个例子,它显示了问题.使用向左和向右箭头应用偏移量.在一定距离内它可以正常工作,但随后会出现问题.黄色描边多边形是所谓的原始偏移多边形,AFAIK Clipper lib提供了一种方法来处理删除原始偏移多边形的不需要的部分.


Angus Johnson有一个Clipper库用于抵消多边形.

我需要在Javascript中使用此功能来抵消SVG多边形.

有人制作了Javascript端口吗?

如果没有,我会欣赏一些指导方针,例如.以下内容:
- 这将是多么艰巨的任务?
- 哪一个选择源(Delphi,C#,C++)?
- 抵消需要lib中的所有内容吗?

Clipper库产生以下结果,这些结果只是所需的功能:

偏移多边形,多边形,delta,jointype,miterlimit,jtSquare jtRound jtMiter

一些链接:
- Sourceforge中的文件
- Clipper文档
- 一个Stackoverflow答案
- 偏移算法

Tim*_*nen 4

我已经成功地将 Clipper 移植到 JS,过了一段时间,经过彻底的测试后,我将发布它。似乎所有功能都可以移植。

需要注意的是,128 位支持已降至 106 位。

优点之一是可以使用较大的浏览器空间,并且可以使用 svg、vml、html5 canvas 作为图形界面。

有什么想法吗?哪个主机最容易发布,并且可以进行演示?


编辑:

最后用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/

我希望这可以帮助任何需要具有偏移功能的折线和多边形裁剪库的人。