Package Exports
- line-path-fillet
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (line-path-fillet) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
A line path filleting micro-library
Demo
Check it out in action: https://hassoncs.github.io/line-path-fillet/
Purpose
This library's primary purpose is to fillet (round) the corner between two line segments.
If the line segments are too small to form a fillet arc at the requested radius, the largest possible radius will be used.
Use
// With four points, A, B, C, and D specified as x,y arrays of length 2:
const pointA = [0, 0];
const pointB = [0, 0];
const pointC = [0, 0];
const pointD = [0, 0];
// First we find the intersection point of the line segments
// This will project the lines as needed in order to find
// the first possible intersection point.
// It will return null if the lines will never intersect.
const intersectionPoint = findIntersection(
pointA[0],
pointA[1],
pointB[0],
pointB[1],
pointC[0],
pointC[1],
pointD[0],
pointD[1],
);
if (!intersectionPoint) return;
const radius = 100;
const filletData = filletCorner(
pointA,
intersectionPoint,
pointC,
radius,
);
// Now we have everything we need to draw the arc:
const {
radius, // The radius we ended up using (might be smaller than the specified radius)
angleA, // Angle from the fillet circle center to the tangent point on line A->I
angleB, // Angle from the fillet circle center to the tangent point on line B->I
tanPointA, // Arc start point
tanPointB, // Arc end point
circleCenter, // Center point of the fillet circle
} = filletData;
Building
Library
npm run build
npm run publish
Demo app dev
cd demo-app
npm install
npm run startDemo app release process
# To build the app
npm run build
# Release it to github pages
npm run deploy