2012-11-06 2 views
12

EDIT5 : 마침내 Angus Johnson의 Clipper 라이브러리가 Javascript로 구현되고 호스트에 대해 Sourceforge가 선택되었습니다.자바에서 오프셋 다각형

라이브 데모 : http://jsclipper.sourceforge.net/6.1.1.1/main_demo.html

다운로드 소스 : https://sourceforge.net/p/jsclipper/wiki/Main_Demo%206/

: 샘플 다각형의 수만을 포함 데모 프로그램의 이 https://sourceforge.net/p/jsclipper/wiki/Home%206/

발표 : 단계별 튜토리얼 https://sourceforge.net/projects/jsclipper/

위키 페이지

폴리 라인과 폴이 필요한 사람에게 도움이되기를 바랍니다. 옵셋 기능이있는 ygon 클리핑 라이브러리.


EDIT4은 : 한 가지 가능성은 http://p2js.gelicon.biz/en/를 사용하여 자바 스크립트로 파스칼을 변환하는 것입니다. 아직 성공하지 못했습니다. p2js.exe clipper.pas 치명적인 오류 "클리퍼가 사용하는 단위 시스템을 찾을 수 없습니다"가 표시됩니다.


편집 : 나는 자바 스크립트에 C#을 변환 할 수 있도록 보인다, script# (Github)를 발견했다. Clipper lib는 C#에서 사용할 수 있으므로 Script # 및 C#을 사용하여 C# -> JS 변환을 할 수 있습니까?

EDIT3 : 스크립트 #으로 변환하지 않았지만 Emscripten도 있지만 4000cpp 라인은 300000Javascript 라인으로 변환되므로 옵션이 아닙니다. 수동 변환은 왕처럼 보입니다.


EDIT2 : an example으로 문제를 나타냅니다. 왼쪽과 오른쪽 화살표를 사용하여 오프셋을 적용하십시오. 어떤 거리에서는 괜찮 았지만 뭔가 잘못되었습니다. 노랑색으로 칠해진 다각형은 원시 오프셋 다각형이라고하며 AFAIK Clipper lib는 원시 오프셋 다각형의 불필요한 부분을 제거하는 방법을 제공합니다.


상쇄 다각형에 대한 앵거스 존슨에 의해 클리퍼 라이브러리가있다.

SVG 다각형을 오프셋하기 위해 자바 스크립트에서이 기능이 필요합니다.

누군가가 자바 스크립트 포트를 만들었습니까?

아니요, 예를 들어 몇 가지 가이드 라인을 고맙게 생각합니다. 다음 :
- 얼마나 막대한 작업일까요?
- 소스 (Delphi, C#, C++) 중 어느 것을 선택할 것입니까?
- 오프셋에 필요한 라이브러리의 모든 것입니까?

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

일부 링크 :

클리퍼 라이브러리는 원하는 기능이있는 다음과 같은 결과를
- Files in Sourceforge
- Clipper Documentation
- One Stackoverflow answer
- Offsetting algorithm

+0

이미 해결하지 못하셨습니까? http://stackoverflow.com/questions/12723832/how-can-i-implement-offset-path-effect-in-svg-without-using-javascript-or-dilate/12723835#12723835 –

+0

일종의, d는 모든 플랫폼에서 작동하지 않을 수있는 마스크 또는 인접한 중복 객체의 복잡한 구조 대신에 단순한 새로운 기하학 (다각형)을 고맙게 생각합니다. –

답변

4

나는 JS로 클리퍼를 이식하는 데 성공했다. 그리고 잠시 후 철저한 테스트를 마친 후 풀어 놓았다. 모든 기능을 이식 할 수 있었던 것 같습니다.

하나 개주의, 128 비트 지원은 106bit로 감소된다.

장점 중 하나는 브라우저의 큰 공간에 도달하고 그래픽 인터페이스로 svg, vml, html5 캔버스를 사용할 수 있다는 것입니다.

아이디어가 있습니까? 어떤 호스트가 게시가 가장 쉽고 데모 가능성이 있습니까?


편집 :

마지막 앵거스 존슨의 클리퍼 라이브러리는 자바 스크립트 구현 및 호스트에 대한 소스 포지를 선택 얻었다.

라이브 데모 : http://jsclipper.sourceforge.net/6.1.1.1/main_demo.html

다운로드 : 단계별 튜토리얼 https://sourceforge.net/projects/jsclipper/

위키 페이지 : https://sourceforge.net/p/jsclipper/wiki/Main_Demo%206/

: 샘플 다각형의 수만을 포함 데모 프로그램의 이 https://sourceforge.net/p/jsclipper/wiki/Home%206/

프리젠 테이션

이 정보가 도움이 되었기를 바랍니다. 옵셋 기능이있는 eds 폴리 라인 및 폴리곤 클리핑 라이브러리.

2

거기에 폴리곤 팽창과 관련된 간단한 해결책은 없습니다. 오목한 다각형이있는 경우 조만간 오프셋을 줄이면 조만간 여러 개의 작은 다각형으로 나뉩니다. 그래서 기존의 입증 된 알고리즘 (Clipper가 좋은 알고리즘이어야 함)을 사용하도록 제안합니다. JS에 C#을 포팅에 대한 질문에

, 나는 그것을 확실히 가능 말할 것입니다, 그러나 문제는 그것이 걸릴 것 얼마나 많은 시간과 자동 포팅 툴은 어떤 사용 될 것입니다 여부입니다.

내가 자바 스크립트로 C# 코드를 번역하는 ScriptSharp를 사용에서 빠른 찌르기를했다,하지만 것을 사용하기 너무 많은 호환되지 않는 구조가있다 나는 그것을 가져올 수 없습니다 : this discussion에서 판단, 나는 그것을 의심 javascript 파일을 출력하십시오. 구현하기 위해 노력 자바 스크립트에서 Vatti 클리핑 알고리즘은 다음 단계가 될 것으로 보인다.

...

을 그리고 네, 그것은 자동화 변환의 모든 종류를 사용하여 도움이되지 않습니다 tools.The 깎기는 JS 또는 .I AS 비 존재하지 않는다 INT64 또는 Int128 같은 데이터 구조를 가지고 단지 당신이 또는 큰지도를 지리 관련 떨어지게에서 작동하지 않는 .Int32는 대부분의 경우에 충분하다 모두를 제거했습니다.

거기에 언급 된 ActionScript 포트 중 하나는 더 이상 사용할 수 없습니다.

+1

최소한 사용 가능합니다 : https://github.com/ChrisDenham/PolygonClipper.AS3. 자동 변환이 옵션이 아니라는 것이 옳습니다. Emscripten 4000 cpp 라인을 사용하여 300,000 JS 라인으로 변환. 나는 그것이 작동하는지 시험하지 않았다. .. –