1
0
Fork 0
freesewing/sites/dev/docs/reference/api/point/shiftfractiontowards
2025-05-19 17:20:45 -07:00
..
readme.mdx fix(dev:docs): Dimension macro, boundary box, and typo fixes 2025-05-19 17:20:45 -07:00

---
title: Point.shiftFractionTowards()
---

The `Point.shiftFractionTowards()` method returns a new `Point` that is shifted
towards the `target` by a `fraction` of the distance between this point and the
target.

This method accepts values larger than 1 to go beyond the target point, or
negative values to shift the point in the opposite direction.

## Signature

```js
Point point.shiftFractionTowards(Point target, float fraction)
```

## Point.shiftFractionTowards() example

<Example caption="An example of the Point.shiftFractionTowards() method">
```js
({ Point, points, Path, paths, macro, part }) => {

  points.A = new Point(90, 70).setText("Point A", "text-sm")
  points.B = new Point(10, 10).setText("Point B", "text-sm")
  points.C = points.A.shiftFractionTowards(points.B, 0.5)
    .setText(
      "Point C is point A shifted 50%\nin the direction of point B",
      "center text-sm"
    )
    .attr("data-text-lineheight", 6)

  paths.direction = new Path()
    .move(points.A)
    .line(points.B)
    .setClass("note dashed")

  macro("ld", {
    from: points.C,
    to: points.A,
    d: -10,
    id: 'macro1',
    force: true,
  })

  macro("ld", {
    from: points.B,
    to: points.A,
    d: 20,
    id: 'macro2',
    force: true,
  })

  return part
}
```
</Example>


## Notes

If you need to move a point by a specific distance instead of a percentage, use
[`Point.shiftTowards()`](/reference/api/point/shifttowards/) or
[`Point.shiftOutwards()`](/reference/api/point/shiftoutwards/) instead.