# Nakafa Framework: LLM
URL: https://nakafa.com/en/subject/high-school/12/mathematics/function-transformation/rotation
Source: https://raw.githubusercontent.com/nakafaai/nakafa.com/refs/heads/main/packages/contents/subject/high-school/12/mathematics/function-transformation/rotation/en.mdx
Output docs content for large language models.
---
export const metadata = {
  title: "Rotation",
  description: "Master function rotation around fixed points with step-by-step examples. Learn rotation formulas, angles, and transformations for various function types.",
  authors: [{ name: "Nabil Akbarazzima Fatih" }],
  date: "05/26/2025",
  subject: "Function Transformation",
};
import { getColor } from "@repo/design-system/lib/color";
import { LineEquation } from "@repo/design-system/components/contents/line-equation";
## Understanding Function Rotation
Rotation is a geometric transformation that rotates an object around a specific center point with a determined rotation angle. In the context of functions, rotation changes the position of the function graph by rotating every point on the graph.
Imagine rotating a wheel. Every point on the wheel will move following a circle with the rotation center as its center. Similarly with function graphs, every point will rotate following the same pattern.
## Rotation Formula Around Center Point
For rotation around center point  with angle , the transformation formula is:
Where:
-  is the original point coordinate
-  is the rotated point coordinate
-  is the rotation center point
-  is the rotation angle (positive for counterclockwise direction)
## Special Rotation Around Origin
When rotation is performed around the origin , the formula becomes simpler:
1. 90 Degree Rotation
    
2. 180 Degree Rotation
    
3. 270 Degree Rotation
    
## Visualization of Quadratic Function Rotation
Let's see how rotation affects the quadratic function :
Rotation of Function  Around Origin>}
  description="Comparison of original function with 90° counterclockwise rotation result."
  data={[
    {
      points: Array.from({ length: 21 }, (_, i) => {
        const x = (i - 10) * 0.5;
        const y = x * x * 0.25;
        return { x, y, z: 0 };
      }),
      color: getColor("PURPLE"),
      showPoints: false,
      labels: [
        {
          text: "y = x²",
          at: 15,
          offset: [0.5, 0.5, 0],
        },
      ],
    },
    {
      points: Array.from({ length: 21 }, (_, i) => {
        const x = (i - 10) * 0.5;
        const y = x * x * 0.25;
        // 90° rotation around origin: (x,y) → (-y,x)
        const xRotated = -y;
        const yRotated = x;
        return { x: xRotated, y: yRotated, z: 0 };
      }),
      color: getColor("ORANGE"),
      showPoints: false,
      labels: [
        {
          text: "90° Rotation Result",
          at: 5,
          offset: [-1, 0.5, 0],
        },
      ],
    },
  ]}
/>
## Properties of Function Rotation
Rotation has several important properties:
- **Preserves Shape**: Rotation does not change the basic shape of the graph, only changes its orientation
- **Preserves Distance**: The distance between two points on the graph remains the same after rotation
- **Rotation Composition**: Consecutive rotations can be combined by adding their angles
## Application of Rotation to Various Functions
### Linear Function Rotation
For linear function , rotation will change the slope and position of the line.
Rotation of Linear Function >}
  description="45° rotation around origin."
  data={[
    {
      points: Array.from({ length: 11 }, (_, i) => {
        const x = (i - 5);
        const y = 2 * x + 1;
        return { x, y, z: 0 };
      }),
      color: getColor("TEAL"),
      showPoints: false,
      labels: [
        {
          text: "y = 2x + 1",
          at: 6,
          offset: [1, 0.5, 0],
        },
      ],
    },
    {
      points: Array.from({ length: 11 }, (_, i) => {
        const x = (i - 5);
        const y = 2 * x + 1;
        // 45° rotation around origin
        const cos45 = Math.cos(Math.PI / 4);
        const sin45 = Math.sin(Math.PI / 4);
        const xRotated = x * cos45 - y * sin45;
        const yRotated = x * sin45 + y * cos45;
        return { x: xRotated, y: yRotated, z: 0 };
      }),
      color: getColor("VIOLET"),
      showPoints: false,
      labels: [
        {
          text: "45° Rotation",
          at: 6,
          offset: [-0.5, 0.5, 0],
        },
      ],
    },
  ]}
/>
### Exponential Function Rotation
Rotation can also be applied to exponential functions with interesting results.
Rotation of Function >}
  description="90° counterclockwise rotation."
  cameraPosition={[8, 6, 8]}
  data={[
    {
      points: Array.from({ length: 15 }, (_, i) => {
        const x = (i - 7) * 0.5;
        const y = Math.pow(2, x * 0.5);
        return { x, y, z: 0 };
      }),
      color: getColor("EMERALD"),
      showPoints: false,
      labels: [
        {
          text: "y = 2^x",
          at: 12,
          offset: [0.5, 0.5, 0],
        },
      ],
    },
    {
      points: Array.from({ length: 15 }, (_, i) => {
        const x = (i - 7) * 0.5;
        const y = Math.pow(2, x * 0.5);
        // 90° rotation around origin: (x,y) → (-y,x)
        const xRotated = -y;
        const yRotated = x;
        return { x: xRotated, y: yRotated, z: 0 };
      }),
      color: getColor("AMBER"),
      showPoints: false,
      labels: [
        {
          text: "90° Rotation",
          at: 3,
          offset: [-0.5, 0.5, 0],
        },
      ],
    },
  ]}
/>
## Steps to Determine Rotation Results
To determine the rotation result of a function, follow these steps:
- Determine the rotation center point and desired rotation angle
- Select several points on the original function graph as samples
- Apply the rotation formula to each sample point
- Connect the rotation result points to form a new function graph
- Verify the result by checking several additional points
## Exercises
1. Determine the rotation result of point  around the origin with a 90° counterclockwise angle.
2. Function  is rotated 180° around the origin. Determine the coordinates of the rotation result vertex if the original vertex is at .
3. Line  is rotated 270° around the origin. Determine the equation of the rotation result line.
4. Point  is rotated 60° around point . Determine the rotation result coordinates.
5. Function  for  is rotated 90° counterclockwise around the origin. Explain the shape of the rotation result graph.
### Answer Key
1. Using the 90° rotation formula:
   
   
   
   
   
   
   So the rotation result is .
   
2. Original vertex rotated 180°:
   
   
   
   
   
   
   The coordinates of the rotation result vertex are .
   Rotation of Function >}
     description="180° rotation around origin."
     cameraPosition={[10, 6, 10]}
     data={[
       {
         points: Array.from({ length: 21 }, (_, i) => {
           const x = (i - 10) * 0.3;
           const y = x * x - 2 * x + 1;
           return { x, y, z: 0 };
         }),
         color: getColor("TEAL"),
         showPoints: false,
         labels: [
           {
             text: "f(x) = x² - 2x + 1",
             at: 18,
             offset: [1, 0.5, 0],
           },
         ],
       },
       {
         points: Array.from({ length: 21 }, (_, i) => {
           const x = (i - 10) * 0.3;
           const y = x * x - 2 * x + 1;
           // 180° rotation: (x,y) → (-x,-y)
           const xRotated = -x;
           const yRotated = -y;
           return { x: xRotated, y: yRotated, z: 0 };
         }),
         color: getColor("VIOLET"),
         showPoints: false,
         labels: [
           {
             text: "180° Rotation Result",
             at: 8,
             offset: [-0.5, -0.5, 0],
           },
         ],
       },
     ]}
   />
3. Take two points on the line and rotate 270°:
   
   
   
   
   
   
   
   
   So the equation of the rotation result line is .
   Rotation of Line >}
     description="270° rotation around origin."
     cameraPosition={[8, 6, 8]}
     data={[
       {
         points: Array.from({ length: 11 }, (_, i) => {
           const x = (i - 5) * 0.8;
           const y = 3 * x - 2;
           return { x, y, z: 0 };
         }),
         color: getColor("EMERALD"),
         showPoints: false,
         labels: [
           {
             text: "y = 3x - 2",
             at: 6,
             offset: [2, 0.5, 0],
           },
         ],
       },
       {
         points: Array.from({ length: 11 }, (_, i) => {
           const x = (i - 5) * 0.8;
           const y = 3 * x - 2;
           // 270° rotation: (x,y) → (y,-x)
           const xRotated = y;
           const yRotated = -x;
           return { x: xRotated, y: yRotated, z: 0 };
         }),
         color: getColor("AMBER"),
         showPoints: false,
         labels: [
           {
             text: "y = -⅓x - ⅔",
             at: 5,
             offset: [-0.5, 1.5, 0],
           },
         ],
       },
     ]}
   />
4. Using the rotation formula around a point with 60° angle:
   
   
   
   
   
   
   
   
   
   
   Rotation result coordinates: 
   
5. Function  rotated 90° becomes:
   
   
   
   
   
   
   The rotation result graph forms a parabola that opens upward with domain  and range . This is a reflection of parabola  across the y-axis.
   Rotation of Function >}
     description="90° counterclockwise rotation around origin."
     cameraPosition={[8, 6, 8]}
     data={[
       {
         points: Array.from({ length: 21 }, (_, i) => {
           const x = i * 0.25;
           const y = Math.sqrt(x);
           return { x, y, z: 0 };
         }),
         color: getColor("LIME"),
         showPoints: false,
         labels: [
           {
             text: "y = √x",
             at: 15,
             offset: [0.5, 0.3, 0],
           },
         ],
       },
       {
         points: Array.from({ length: 21 }, (_, i) => {
           const x = i * 0.25;
           const y = Math.sqrt(x);
           // 90° rotation: (x,y) → (-y,x)
           const xRotated = -y;
           const yRotated = x;
           return { x: xRotated, y: yRotated, z: 0 };
         }),
         color: getColor("ROSE"),
         showPoints: false,
         labels: [
           {
             text: "y = x² (x ≤ 0)",
             at: 15,
             offset: [-0.8, 0.3, 0],
           },
         ],
       },
     ]}
   />