meta data for this page
Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:design_guide_path [2020/12/04 05:55] JSCAD Editor |
en:design_guide_path [2022/04/13 12:44] (current) rozek included "require" statements, corrected mistakes |
||
---|---|---|---|
Line 4: | Line 4: | ||
<code javascript> | <code javascript> | ||
- | let mypathA = line([[10, 10], [-10, 10]]) | + | const { line } = require(' |
- | let mypathB = line([[-10, -10], [10, -10]]) | + | const { path2 } = require(' |
- | mypath = path2.concat(mypathA, | + | |
+ | const mypathA = line([[10, 10], [-10, 10]]) | ||
+ | const mypathB = line([[-10, -10], [10, -10]]) | ||
+ | let mypath = path2.concat(mypathA, | ||
mypath = path2.close(mypath) | mypath = path2.close(mypath) | ||
</ | </ | ||
Line 18: | Line 21: | ||
</ | </ | ||
- | === Curves | + | === Curved Paths === |
- | Curved paths can also be simulated. Paths can be created as an '' | + | Curved paths can also be simulated. Paths can be created as an 'arc'. (See Appending Points below for more options.) |
+ | |||
+ | {{ : | ||
+ | |||
+ | The 'arc' | ||
+ | |||
+ | Defaults: | ||
+ | * center : [0, 0] | ||
+ | * radius : 1 | ||
+ | * startAngle : 0 | ||
+ | * endAngle : PI * 2 | ||
+ | * segments : 32 | ||
<code javascript> | <code javascript> | ||
- | let mypath = line([[27, -22], [27, 22]]) | + | const { arc } = require(' |
- | mypath = path2.appendArc({endPoint: [-27, -22], radius: | + | |
- | mypath = path2.close() | + | const mypath = arc({radius: 5, startAngle: Math.PI / 2}) |
+ | const mypath = arc({center: [5, 5], radius: | ||
</ | </ | ||
- | === Append | + | === Appending |
- | Append the given list of points to the end of the given geometry. | + | Any number |
<code javascript> | <code javascript> | ||
- | let mypath = line([[27, -22], [27, 22]]) | + | const { path2 } = require(' |
- | mypath | + | const { line } = require(' |
- | mypath = path2.close() | + | |
+ | const mypath = line([[27, -22], [27, 22]]) | ||
+ | const newpath | ||
</ | </ | ||
- | === Append | + | An ' |
- | Append a series of points to the given geometry that simulate an arc. | + | Defaults: |
+ | * radius : [0, 0] | ||
+ | * clockwise : false | ||
+ | * large : false | ||
+ | * segments : 32 | ||
//Note: This implementation follows the SVG specifications.// | //Note: This implementation follows the SVG specifications.// | ||
+ | <code javascript> | ||
+ | const { path2 } = require(' | ||
+ | let p1 = path2.create([[10, | ||
+ | p1 = path2.appendPoints([[27.5, | ||
+ | p1 = path2.appendArc({endpoint: | ||
+ | </ | ||
+ | In addition, ' | ||
- | === Append | + | The ' |
- | Append a series of points to the given path that simulates a Bezier curve. The Bézier curve starts at the last point in the given path, and ends at the last control point. The other control points are intermediate control points to transition the curve from start to end points. The first control point may be ' | + | //Note: This implementation follows |
<code javascript> | <code javascript> | ||
- | let p5 = path2.create({}, [[10, | + | const { path2 } = require(' |
- | p5 = path2.appendBezier({controlPoints: | + | |
+ | let p5 = path2.create([[10, | ||
+ | p5 = path2.appendBezier({controlPoints: | ||
p5 = path2.appendBezier({controlPoints: | p5 = path2.appendBezier({controlPoints: | ||
</ | </ | ||
Line 64: | Line 94: | ||
<code javascript> | <code javascript> | ||
+ | const { geom2, path2 } = require(' | ||
+ | const { line } = require(' | ||
+ | |||
// create a closed path in shape of triangle | // create a closed path in shape of triangle | ||
- | let mypath = line([[10, 10], [-10, 10], [-10, -10], [10, 10]]) | + | const mypath = line([[10, 10], [-10, 10], [-10, -10], [10, 10]]) |
- | let myshape = geom2.fromPoints(path2.toPoints(mypath)) | + | const myshape = geom2.fromPoints(path2.toPoints(mypath)) |
</ | </ | ||
- | Second, a path can be expanded into a two dimensional shape. The result is a shape that fits around the path. The path can be either open or closed. | + | Second, a path can be expanded into a two dimensional shape. The result is a two dimensional |
<code javascript> | <code javascript> | ||
// create an open path in shape of L | // create an open path in shape of L | ||
- | let mypath = line([[10, 10], [-10, 10], [-10, -10]]) | + | const { expand } = require(' |
- | let myshape = expand({delta: | + | const { line } = require(' |
+ | |||
+ | const mypath = line([[10, 10], [-10, 10], [-10, -10]]) | ||
+ | const myshape = expand({delta: | ||
</ | </ | ||
=== Conversion to 3D Shape === | === Conversion to 3D Shape === | ||
- | Hint: Any two dimensional | + | Two dimensional |
+ | |||
+ | <code javascript> | ||
+ | const { path2 } = require(' | ||
+ | const { extrudeLinear } = require(' | ||
+ | |||
+ | // create a closed path in shape of triangle | ||
+ | const mypath = path2.fromPoints({ closed: true }, [[0, 0], [12, 0], [6, 10]]) | ||
+ | // extrude into triangular prism | ||
+ | const myshape = extrudeLinear({ height: 15 }, mypath) | ||
+ | </ |