From 3436bab5ee0a75b8e53c18c87315d223cd7d6731 Mon Sep 17 00:00:00 2001 From: Nail Date: Thu, 31 Aug 2023 18:09:44 +0300 Subject: [PATCH] Update README.md --- README.md | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8ce7bb3..9a840ed 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,61 @@ # iShape-js -Polygon Bool operations for js + +

+ +

+The iShape-js is a poly-bool library that supports main operations such as union, intersection, difference, xor, and self-intersection by the even-odd rule. This algorithm is based on Vatti clipping ideas but is an original implementation. + +## [Demo](https://ishape-rust.github.io/iShape-js/demo/stars_demo.html) +Try out i_overlay with an interactive demo. The demo covers operations like union, intersection, and difference. +[Demo](https://ishape-rust.github.io/iShape-js/demo/stars_demo.html) + + +## Features + +- Supports all basic set operations such as union, intersection, difference, exclusion and self-intersection. +- Capable of handling various types of polygons, including self-intersecting polygons, multiple paths and polygons with holes. +- Optimizes by removing unnecessary vertices and merging parallel edges. +- Effectively handles an arbitrary number of overlaps, resolving them using the even-odd rule. +- Employs integer arithmetic for computations. + + + +## Working Range and Precision +The i_overlay library operates within the following ranges and precision levels: + +Extended Range: From -1,000,000 to 1,000,000 with a precision of 0.001. +Recommended Range: From -100,000 to 100,000 with a precision of 0.01 for more accurate results. +Utilizing the library within the recommended range ensures optimal accuracy in computations and is advised for most use cases. + + + +## Basic Usage + +Add the following imports: +```rust + +``` + +### Union +

+ +

+ +### Difference +

+ +

+ +### Intersection +

+ +

+ +### Exclusion (xor) +

+ +

+ +### Self-intersection +

+