<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SwiftUI",
  "identifier" : "/documentation/SwiftUI/VisualEffect/perspectiveRotationEffect(_:axis:anchor:perspective:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:7SwiftUI12VisualEffectPAAE019perspectiveRotationD0_4axis6anchor0E0QrAA5AngleV_14CoreFoundation7CGFloatV1x_AL1yAL1ztAA11UnitPoint3DVALtF"
  },
  "title" : "perspectiveRotationEffect(_:axis:anchor:perspective:)"
}
-->

# perspectiveRotationEffect(_:axis:anchor:perspective:)

Renders content as if it’s rotated in three dimensions around
the specified axis.

```
func perspectiveRotationEffect(_ angle: Angle, axis: (x: CGFloat, y: CGFloat, z: CGFloat), anchor: UnitPoint3D = .back, perspective: CGFloat = 1) -> some VisualEffect
```

## Parameters

`angle`

The angle by which to rotate the content.

`axis`

The axis of rotation, specified as a tuple with named
elements for each of the three spatial dimensions.

`anchor`

A unit point within the content about which to perform
the rotation. The default value is [`center`](/documentation/SwiftUI/UnitPoint3D/center).

`perspective`

The relative vanishing point for the rotation. The
default is `1`.

## Return Value

A rotation effect.

## Discussion

Use this method to create the effect of rotating content in three
dimensions around a specified axis of rotation. The modifier projects
two dimensional content onto the original content’s plane. Use the
`perspective` input to control the renderer’s vanishing point. The
following example creates the appearance of rotating text 45˚ about
the y-axis:

```
Text("Rotation by passing an angle in degrees")
    .visualEffect { content, geometryProxy in
        content
            .perspectiveRotationEffect(
                .degrees(45),
                axis: (x: 0.0, y: 1.0, z: 0.0),
                anchor: .center,
                perspective: 1)
        }
    .border(Color.gray)
```

![A screenshot of text in a grey box. The text says Rotation by passing an angle in degrees. The text is rendered in a way that makes it appear farther from the viewer on the right side and closer on the left, as if the text is angled to face someone sitting on the viewer’s right.](images/com.apple.SwiftUI/SwiftUI-View-rotation3DEffect@2x.png)

> Important: To truly rotate content in three dimensions,
> use a 3D rotation effect without a perspective input like
> ``doc://com.apple.SwiftUI/documentation/SwiftUI/VisualEffect/rotation3DEffect(_:axis:anchor:)``.

---

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)