<!--
{
  "availability" : [
    "iOS: 10.0.0 -",
    "iPadOS: 10.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.12.0 -",
    "tvOS: 10.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "GameplayKit",
  "identifier" : "/documentation/GameplayKit/GKNoise/remapValues(toCurveWithControlPoints:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "GameplayKit"
    ],
    "preciseIdentifier" : "c:objc(cs)GKNoise(im)remapValuesToCurveWithControlPoints:"
  },
  "title" : "remapValues(toCurveWithControlPoints:)"
}
-->

# remapValues(toCurveWithControlPoints:)

Replaces values in the noise field by mapping them to a curve that passes through the specified control points.

```
func remapValues(toCurveWithControlPoints controlPoints: [NSNumber : NSNumber])
```

## Parameters

`controlPoints`

A dictionary whose keys are input values in the existing noise, and whose values are the output values to replace the input values with.

## Discussion

When you call this method, the [`GKNoise`](/documentation/GameplayKit/GKNoise) class first interpolates the values specified in the `controlPoints` parameter to create a smooth curve. Then, this method uses the curve to replace values in the noise field. For example, passing the control points `[-1.0: -1.0, -0.5: 0.5, 0.5: -0.5, 1.0: 1.0]` defines an S-shaped curve that leaves the lowest and highest values in the noise field unchanged, but replaces moderately low values with moderately high values and vice versa.

![](images/com.apple.gameplaykit/media-2556387@2x.png)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)