diff --git a/extensions/math/src/index.ts b/extensions/math/src/index.ts
index 1461b8c..b3db12a 100644
--- a/extensions/math/src/index.ts
+++ b/extensions/math/src/index.ts
@@ -5,4 +5,6 @@ export type { NumberAxisOptions } from './number-axis.vue'
export { default as NumberPlane } from './number-plane.vue'
export type { NumberPlaneOptions } from './number-plane.vue'
export { default as Tex } from './tex.vue'
+export { default as PolarPlane } from './polar-plane.vue'
+export type { PolarPlaneOptions } from './polar-plane.vue'
export type { TexOptions } from './tex.vue'
diff --git a/extensions/math/src/polar-plane.vue b/extensions/math/src/polar-plane.vue
new file mode 100644
index 0000000..d44f646
--- /dev/null
+++ b/extensions/math/src/polar-plane.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ options.trend ? options.trend(at) : at * (360 / (options.divide ?? 20)) }}°
+
+
+
+
diff --git a/test/src/App.vue b/test/src/App.vue
index b968ba8..ac8572b 100644
--- a/test/src/App.vue
+++ b/test/src/App.vue
@@ -2,7 +2,7 @@
import { usePlayer, useWidget } from '@vue-motion/core'
import { Group, Motion, grow } from '@vue-motion/lib'
import { onMounted } from 'vue'
-import { MathFunction, NumberPlane } from '@vue-motion/extension-math'
+import { MathFunction, NumberPlane, PolarPlane } from '@vue-motion/extension-math'
const fn1 = useWidget>('fn1')
const fn2 = useWidget>('fn2')
@@ -24,11 +24,14 @@ onMounted(() => {
+
+
+
+
+
+
-
-
-
-
+