2021-10-17 18:26:00 +02:00
|
|
|
---
|
2021-08-25 16:09:31 +02:00
|
|
|
title: Slash and spread
|
|
|
|
for: developers
|
|
|
|
about: Slash and spread is easy enough on paper, here's how to do it in code
|
2021-10-17 18:26:00 +02:00
|
|
|
---
|
2021-08-25 16:09:31 +02:00
|
|
|
|
|
|
|
<Note>
|
|
|
|
|
|
|
|
##### See this example in our source code
|
|
|
|
|
2022-02-19 08:04:25 +01:00
|
|
|
- [packages/jaeger/src/front.js](https://github.com/freesewing/freesewing/blob/8474477911daed3c383700ab29c9565883f16d66/packages/jaeger/src/front.js#L64)
|
2021-08-25 16:09:31 +02:00
|
|
|
|
|
|
|
</Note>
|
|
|
|
|
2022-02-19 08:04:25 +01:00
|
|
|
When we *slash and spread* a pattern, we cut out a triangle, and then rotate it
|
2021-08-25 16:09:31 +02:00
|
|
|
around the tip of the triangle.
|
|
|
|
|
|
|
|
And that's exactly what we do in code. We just need to know:
|
|
|
|
|
2022-02-19 08:04:25 +01:00
|
|
|
- What point we want to rotate around
|
|
|
|
- Which points we want to rotate
|
|
|
|
- By how much we want to rotate
|
2021-08-25 16:09:31 +02:00
|
|
|
|
|
|
|
```js
|
|
|
|
let rotate = [
|
|
|
|
'splitEdge',
|
|
|
|
'neckEdge',
|
|
|
|
'cfNeck',
|
|
|
|
'cfNeckCp1',
|
|
|
|
'neckCp2Front',
|
|
|
|
'neck',
|
|
|
|
'shoulder',
|
|
|
|
'shoulderCp1',
|
|
|
|
'armholePitchCp2',
|
|
|
|
'armholePitch',
|
|
|
|
'armholePitchCp1',
|
|
|
|
'armholeHollowCp2',
|
|
|
|
'armholeHollow',
|
|
|
|
'armholeHollowCp1',
|
|
|
|
'splitCp2',
|
|
|
|
'frontNeckCpEdge'
|
|
|
|
]
|
|
|
|
for (let p of rotate) {
|
|
|
|
points[p] = points[p].rotate(options.chestShapingMax * options.chestShaping * -1, points.split)
|
|
|
|
}
|
|
|
|
```
|