gpt4 book ai didi

javascript - 在 Javascript 中偏移多边形

转载 作者:可可西里 更新时间:2023-11-01 01:53:41 25 4
gpt4 key购买 nike

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 给出 fatal error “无法找到 clipper 使用的单位系统”。


编辑:我找到了 script# ( Github ),它似乎能够将 C# 转换为 Javascript。 C# 中提供了 Clipper 库,那么是否可以使用 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 库生成以下结果,这些结果正是所需的功能:

Offset Polygons, polygons, delta, jointype, miterlimit, jtSquare jtRound jtMiter

部分链接:
- Files in Sourceforge
- Clipper Documentation
- One Stackoverflow answer
- Offsetting algorithm

最佳答案

我已经成功地将 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/

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

关于javascript - 在 Javascript 中偏移多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13248896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com