sparkles: Added path.trim() example
This commit is contained in:
parent
872a5a0a75
commit
13ece051d7
2 changed files with 43 additions and 0 deletions
|
@ -32,6 +32,7 @@ import pathReverse from "./path.reverse";
|
||||||
import pathShiftAlong from "./path.shiftalong";
|
import pathShiftAlong from "./path.shiftalong";
|
||||||
import pathShiftFractionAlong from "./path.shiftfractionalong";
|
import pathShiftFractionAlong from "./path.shiftfractionalong";
|
||||||
import pathEdge from "./path.edge";
|
import pathEdge from "./path.edge";
|
||||||
|
import pathTrim from "./path.trim";
|
||||||
import pathIntersectsX from "./path.intersectsx";
|
import pathIntersectsX from "./path.intersectsx";
|
||||||
import pathIntersectsY from "./path.intersectsy";
|
import pathIntersectsY from "./path.intersectsy";
|
||||||
import pathIntersects from "./path.intersects";
|
import pathIntersects from "./path.intersects";
|
||||||
|
@ -93,6 +94,7 @@ pattern.draft = function() {
|
||||||
if (this.needs('pathShiftAlong')) this.parts.pathShiftAlong = this.draftPathShiftAlong(new pattern.Part());
|
if (this.needs('pathShiftAlong')) this.parts.pathShiftAlong = this.draftPathShiftAlong(new pattern.Part());
|
||||||
if (this.needs('pathShiftFractionAlong')) this.parts.pathShiftFractionAlong = this.draftPathShiftFractionAlong(new pattern.Part());
|
if (this.needs('pathShiftFractionAlong')) this.parts.pathShiftFractionAlong = this.draftPathShiftFractionAlong(new pattern.Part());
|
||||||
if (this.needs('pathEdge')) this.parts.pathEdge = this.draftPathEdge(new pattern.Part());
|
if (this.needs('pathEdge')) this.parts.pathEdge = this.draftPathEdge(new pattern.Part());
|
||||||
|
if (this.needs('pathTrim')) this.parts.pathTrim = this.draftPathTrim(new pattern.Part());
|
||||||
if (this.needs('pathIntersectsX')) this.parts.pathIntersectsX = this.draftPathIntersectsX(new pattern.Part());
|
if (this.needs('pathIntersectsX')) this.parts.pathIntersectsX = this.draftPathIntersectsX(new pattern.Part());
|
||||||
if (this.needs('pathIntersectsY')) this.parts.pathIntersectsY = this.draftPathIntersectsY(new pattern.Part());
|
if (this.needs('pathIntersectsY')) this.parts.pathIntersectsY = this.draftPathIntersectsY(new pattern.Part());
|
||||||
if (this.needs('pathIntersects')) this.parts.pathIntersects = this.draftPathIntersects(new pattern.Part());
|
if (this.needs('pathIntersects')) this.parts.pathIntersects = this.draftPathIntersects(new pattern.Part());
|
||||||
|
@ -151,6 +153,7 @@ pattern.draftPathReverse = part => pathReverse.draft(part);
|
||||||
pattern.draftPathShiftAlong = part => pathShiftAlong.draft(part);
|
pattern.draftPathShiftAlong = part => pathShiftAlong.draft(part);
|
||||||
pattern.draftPathShiftFractionAlong = part => pathShiftFractionAlong.draft(part);
|
pattern.draftPathShiftFractionAlong = part => pathShiftFractionAlong.draft(part);
|
||||||
pattern.draftPathEdge = part => pathEdge.draft(part);
|
pattern.draftPathEdge = part => pathEdge.draft(part);
|
||||||
|
pattern.draftPathTrim = part => pathTrim.draft(part);
|
||||||
pattern.draftPathIntersectsX = part => pathIntersectsX.draft(part);
|
pattern.draftPathIntersectsX = part => pathIntersectsX.draft(part);
|
||||||
pattern.draftPathIntersectsY = part => pathIntersectsY.draft(part);
|
pattern.draftPathIntersectsY = part => pathIntersectsY.draft(part);
|
||||||
pattern.draftPathIntersects = part => pathIntersects.draft(part);
|
pattern.draftPathIntersects = part => pathIntersects.draft(part);
|
||||||
|
|
40
packages/examples/src/path.trim.js
Normal file
40
packages/examples/src/path.trim.js
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
var pathTrim = {
|
||||||
|
draft: function(part) {
|
||||||
|
// prettier-ignore
|
||||||
|
let {Point, points, Path, paths, Snippet, snippets, macro} = part.shorthand();
|
||||||
|
|
||||||
|
points.center = new Point(0, 0);
|
||||||
|
points.base = new Point(0, 10);
|
||||||
|
points.tip = new Point(0, 50);
|
||||||
|
points.tipCpRight = new Point(30, 50);
|
||||||
|
points.tipCpLeft = new Point(-30, 50);
|
||||||
|
paths.example = new Path().move(points.base);
|
||||||
|
for(let i=0; i<4; i++) {
|
||||||
|
points['base'+i] = points.base.rotate(60*i, points.center);
|
||||||
|
points['tip'+i] = points.tip.rotate(60*i, points.center);
|
||||||
|
points['tipCpRight'+i] = points.tipCpRight.rotate(60*i, points.center);
|
||||||
|
points['tipCpLeft'+i] = points.tipCpLeft.rotate(60*i, points.center);
|
||||||
|
if(i<2) {
|
||||||
|
paths.example
|
||||||
|
.line(points['base'+i])
|
||||||
|
.curve(points['base'+i], points['tipCpLeft'+i], points['tip'+i])
|
||||||
|
.curve(points['tipCpRight'+i], points['base'+i], points['base'+i]);
|
||||||
|
} else {
|
||||||
|
paths.example
|
||||||
|
.line(points['base'+i])
|
||||||
|
.line(points['tip'+i])
|
||||||
|
.line(points['tipCpRight'+i])
|
||||||
|
.line(points['base'+i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
paths.offset = paths.example.offset(10).attr('class', 'lining dotted stroke-sm');
|
||||||
|
|
||||||
|
paths.trimmed = paths.offset.trim()
|
||||||
|
.attr('class', 'various stroke-xl')
|
||||||
|
.attr('style', 'stroke-opacity: 0.5;');
|
||||||
|
return part;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export default pathTrim;
|
Loading…
Add table
Add a link
Reference in a new issue