# `GSAffineTransformMappingLine2Line`

*Function*

## Declaration

```swift
func GSAffineTransformMappingLine2Line(_ p1: NSPoint, _ p2: NSPoint, _ q1: NSPoint, _ q2: NSPoint, _ preserveLength: Bool, _ outError: NSErrorPointer) -> AffineTransform?
```

```objc
NSAffineTransform *GSAffineTransformMappingLine2Line(NSPoint p1, NSPoint p2, NSPoint q1, NSPoint q2, BOOL preserveLength, NSError **outError);
```

```python
GSAffineTransformMappingLine2Line(p1: NSPoint, p2: NSPoint, q1: NSPoint, q2: NSPoint, preserveLength: bool) -> tuple[NSAffineTransform, NSError]
```

## See Also

### Miscellaneous Math and Transforms

- [`GSFindDivisorClosestTo`](/Core/GlyphsCore/GSFindDivisorClosestTo)
- [`GSColinearLines`](/Core/GlyphsCore/GSColinearLines)
- [`GSColinearLinesTolerance`](/Core/GlyphsCore/GSColinearLinesTolerance)
- [`GSGreenHarmony`](/Core/GlyphsCore/GSGreenHarmony)

