
The replaces the NextJS site powering FreeSewing.dev with a Docusaurus setup. It's part of my efforts to simplify FreeSewing's setup so we can focus on our core value proposition.
53 lines
1.4 KiB
Text
53 lines
1.4 KiB
Text
---
|
|
title: Path.rotate()
|
|
---
|
|
|
|
The `Path.rotate()` returns a path that is a rotated copy of this path.
|
|
This method behaves like calling [Point.rotate](/reference/api/point/rotate) on all nodes of this path.
|
|
|
|
## Signature
|
|
|
|
```js
|
|
Path path.rotate(number deg, Point rotationOrigin, cloneAttributes = false)
|
|
```
|
|
|
|
If you pass a truthy value to the cloneAttributes parameter, it will return a deep clone of the
|
|
path, including its attributes. By default, it will return a shallow
|
|
copy, without the attributes.
|
|
|
|
## Example
|
|
|
|
|
|
<Example caption="Example of the Path.rotate() method">
|
|
```js
|
|
({ Point, points, Path, Snippet, paths, snippets, part }) => {
|
|
|
|
points.B = new Point(10, 30)
|
|
points.BCp2 = new Point(40, 20)
|
|
points.C = new Point(90, 30)
|
|
points.CCp1 = new Point(50, -30)
|
|
points.origin = new Point(6, 34)
|
|
snippets.origin = new Snippet('notch', points.origin)
|
|
|
|
paths.example = new Path()
|
|
.move(points.B)
|
|
.curve(points.BCp2, points.CCp1, points.C)
|
|
.setText("FreeSewing rocks", "text-xs fill-note center")
|
|
|
|
paths.rotated = paths.example
|
|
.rotate(180, points.origin, true)
|
|
.attr("class", "dotted")
|
|
|
|
return part
|
|
}
|
|
```
|
|
</Example>
|
|
|
|
## Notes
|
|
|
|
The rotated path is a shallow copy.
|
|
It will in other words not inherit the attributes of the original path.
|
|
|
|
If you want a deep copy, including the attributes, set the third parameter to true:
|
|
|
|
`Path.rotate(deg, origin, true)`
|