Comments (7)
agreed, making as enhancement, although I've been unhappy with the code that's been in place on bezierinfo for quite a while now. I need to find some time to actually write a better implementation, but that time's hard to come by.
from bezierjs.
@Pomax What is wrong with the existing implementation you have done in Processing? Does it fail with some edge cases?
from bezierjs.
yeah, it doesn't deal with colinear overlap, or point incidence (e.g. two shapes overlapping on the same hull point). It forms ... rather weird things
from bezierjs.
What do you think about VectorBoolean library that is used by Sketch.app? The library was initially written in Objective-C, but there is a Swift port which should be rather easy to port to JavaScript.
I was also thinking about porting the new intersection graph from 2Geom. Both VectorBoolean and 2Geom implementations look solid, but I find the 2Geom C++ code much harder to understand.
from bezierjs.
honestly at this point I'm using paper.js for shape operations, as it has pretty well implemented boolean operation support. (see http://paperjs.org/reference/compoundpath/#unite-path etc).
Example of use in another project: https://github.com/Pomax/quick-glyph-maker/blob/gh-pages/utils.js#L29
from bezierjs.
@Pomax Thanks for hint, I wasn't aware of the recent improvements to Paper.js, it looks like it can handle almost all edge cases now.
from bezierjs.
closing as I'm using paper.js for this myself.
from bezierjs.
Related Issues (20)
- Release v6.1.2 broken HOT 3
- Why get(t = 0.5) point is not the middle point of the curve? HOT 5
- Find optmal D1 - Bezier.cubicFromPoints HOT 1
- PolyBezier is not exported correct for ES Module. HOT 3
- Rational Bezier Curve Support HOT 1
- Example usage of `dist/bezier.js` HOT 4
- How to make a "strict" version of bezier.project(point)? HOT 2
- Should bezier.lineIntersects(line) work for line-line intersections? HOT 3
- intersects bug Bezier to Bezier HOT 3
- Suspicious line in `utils.compute()` HOT 2
- The intersection of the two bezier is empty HOT 10
- The intersection of two identical curves HOT 2
- Intersect line method does not always return existing intersections HOT 6
- Ability to get and estimate the centerline of a list of 3D points HOT 3
- PR for extending API to interpolate values along curve and find point on curve at distance?
- Artifact when offsetting an SVG path
- Split curves do not follow old curve. HOT 2
- Missing LICENSE file HOT 1
- How to Find Y-Coordinate for a Given X-Coordinate on a Bezier Curve HOT 3
- Q: PolyBezier surface calculation HOT 13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bezierjs.