bezier
bezier copied to clipboard
Helper for Bézier Curves, Triangles, and Higher Order Objects
This depends on #107, i.e. it can't be resolved until / unless #107 is. ---- Currently, the surface of intersection is manually [specified][1] and that is required because it fails...
By re-phrasing all computations as eigenvalue problems / rank computations, the code will be - more stable (converting from Bernstein basis is unstable) - more "Fortran"-izable (the `numpy` polynomial procedures...
We have the curves ```python >>> import numpy as np >>> >>> nodes1 = np.asfortranarray([ ... [0.0, 0.0], ... [0.5, 1.0], ... [1.0, 0.0], ... ]) >>> nodes13 = np.asfortranarray([...
A recently added [case][1] caused a failure for the algebraic method, but it should not have. Two different pairs of edges that are nowhere near coincident fail with a ```python...
From https://github.com/dhermes/bezier/commit/b89b2b1de1726cdc9f508bd761f4c20e7d655321: > This is a "robustness" change and (for now) it allows a "degenerate" curved polygon of intersection. What will likely happen is that the change to `surface_intersections.json` will...
The classification is done [here][1]. The four cases can be summarized succinctly:  ``` ======================================== Tangent Vector on Curve 1: [[-1. 0.]] Curvature on Curve 1: 2.0 Center of Curvature:...
As of `bezier==0.7.0` (i.e. the transpose) the following curves will work: ```python nodes1 = np.asfortranarray([ [0.0, 25.0, 50.0, 75.0, 100.0], [0.0, -100.0, 75.0, -100.0, 0.0], ]) nodes2 = np.asfortranarray([ [-50.0,...
This way we can avoid re-computing the first and second node differences if they will be used many times. (I am leaning heavily on **not** doing this.) Places that could...
There are still functions (e.g. `basic_interior_combine()`) which are in `_surface_helpers.py` but should have been moved to `_surface_intersection.py` when it was created. This is a "nice-to-have" and very low priority. ----...
See some [discussion][2] on StackOverflow. > You don't want all MATMULs to be dgemm, it is not profitable for very small matrices. `gfortran` does what you want From the `gfortran`...