1
0
Fork 0

sparkles: Added path.trim() example

This commit is contained in:
Joost De Cock 2018-09-04 15:23:40 +02:00
parent 872a5a0a75
commit 13ece051d7
2 changed files with 43 additions and 0 deletions

View file

@ -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);

View 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;