joshuaskelly / earcut-python Goto Github PK
View Code? Open in Web Editor NEWA pure Python port of the earcut JavaScript triangulation library.
License: ISC License
A pure Python port of the earcut JavaScript triangulation library.
License: ISC License
awesome repo!!
I am getting the above error when running a fairly large and complex concave polygon with a hole ( full trace is below ).
updating lines 455
and 456
to force the result to an int seems to be sufficient
x = int(32767 * (x - minX) // size)
y = int(32767 * (y - minY) // size)
File ".../scratch_python/env/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 3343, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-2-c540e453c829>", line 1, in <module>
runfile(.../scratches/scratch.py', wdir='.../scratches')
File "/snap/pycharm-professional/230/plugins/python/helpers/pydev/_pydev_bundle/pydev_umd.py", line 197, in runfile
pydev_imports.execfile(filename, global_vars, local_vars) # execute the script
File "/snap/pycharm-professional/230/plugins/python/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File ".../scratches/scratch.py", line 48, in <module>
main('.../alabama_smsa.geojson')
File ".../scratches/scratch.py", line 39, in main
triangles.extend(triangulate_poly(x['geometry']['coordinates']))
File ".../scratches/scratch.py", line 14, in triangulate_poly
earcut_indexes = earcut.earcut(flat_coords['vertices'],flat_coords['holes'],flat_coords['dimensions'])
File ".../earcut/earcut.py", line 48, in earcut
earcutLinked(outerNode, triangles, dim, minX, minY, size)
File ".../earcut/earcut.py", line 106, in earcutLinked
indexCurve(ear, minX, minY, size)
File ".../earcut/earcut.py", line 369, in indexCurve
p.z = zOrder(p.x, p.y, minX, minY, size)
File ".../earcut/earcut.py", line 458, in zOrder
x = (x | (x << 8)) & 0x00FF00FF
TypeError: unsupported operand type(s) for <<: 'float' and 'int'```
Hi - I found your library very useful for my last PyWeek entry What The Frog?!.
But I ended up having to vendor the library (as a git submodule).
Have you thought about creating a PyPI package for it?
Steps to reproduce:
Install the package from pypi:
pip3 install earcut
Import and run example from the README.md file:
>>> import earcut
>>> triangles = earcut([10, 0, 0, 50, 60, 60, 70, 10])
Traceback (most recent call last):
File "<input>", line 1, in <module>
earcut([10, 0, 0, 50, 60, 70, 10])
TypeError 'module' object is not callable
Expected output:
[1, 0, 3, 3, 2, 1]
pip show earcut
Name: earcut
Version: 1.1.4
Summary: A pure Python port of the earcut JS triangulation library
Home-page: https://github.com/MetacitySuite/earcut-python
Author: Metacity
Author-email:
License: ISC
Location: /home/rtfm/.local/lib/python3.10/site-packages
Requires: numpy
Required-by:
The referenced Location discussed in #1 and introduced by @vojtatom is not available any more.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.