--- 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 ```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 } ``` ## 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)`