SVG Animation Examples Gallery

Browse featured svg animation examples

Playback pauses when you leave
'use client'; import React, { useState, useEffect, useRef, useMemo } from 'react'; const VIEW_WIDTH = 1000; const VIEW_HEIGHT = 600; // ---------------------------------------------------------------------- // Types & Constants // ---------------------------------------------------------------------- type AnimalType = 'unknown' | 'chicken' | 'rabbit'; interface AnimalState { id: number; type: AnimalType; legs: number; x: number; y: number; isTransforming: boolean; } interface S

國小六年級解決雞兔同籠問題的數學動畫,可愛版本,在更詳盡的舉

Playback pauses when you leave
```javascript 'use client'; import React, { useState, useEffect, useRef, useMemo } from 'react'; // 视图常量定义 const VIEW_WIDTH = 1000; const VIEW_HEIGHT = 600; const ORIGIN_X = 500; // 原点屏幕X const ORIGIN_Y = 100; // 原点屏幕Y (因为开口向下,顶点在上方,预留上方空间) const SCALE_X = 60; // X轴缩放比例 const SCALE_Y = 12; // Y轴缩放比例 (Y轴数值变化大,压缩显示) export default function ParabolaGeometryAnimation() { const [m, setM] = useState(-5); const requestRef = useRef<number>(); const startTimeRef = useRef<number>(); // 动画循

在平面直角坐标系中,抛物线y=-x^2+2x+3的对称轴为直

Playback pauses when you leave
'use client'; import React, { useState, useEffect, useRef } from 'react'; const VIEW_WIDTH = 1000; const VIEW_HEIGHT = 600; const TOTAL_HEADS = 8; const TOTAL_LEGS = 22; export default function ChickenRabbitSolver() { // Animation States const [step, setStep] = useState(0); const [animals, setAnimals] = useState(Array(TOTAL_HEADS).fill({ legs: 0, isRabbit: false })); const [extraLegs, setExtraLegs] = useState(0); const [flyingLegs, setFlyingLegs] = useState<{id: number, targetIdx:

我是小学奥数教师,我要做一个鸡兔同笼问题解答过程,帮我输出。

Playback pauses when you leave
```javascript 'use client'; import React, { useState, useEffect, useRef } from 'react'; const VIEW_WIDTH = 1000; const VIEW_HEIGHT = 600; // 颜色定义 - 科技感配色 const COLORS = { bg: '#0f172a', // 背景色 primary: '#38bdf8', // 主梯形颜色 (天蓝) secondary: '#a78bfa', // 复制梯形颜色 (紫) accent: '#facc15', // 强调色 (黄) text: '#e2e8f0', // 文本颜色 grid: '#1e293b', // 网格线 dim: '#475569', // 暗淡色 }; export default function TrapezoidAreaProof() { const [step, setStep] = useState(0);

我是小学数学教师,我要做一个梯形面积的证明过程,帮我输出。简

Playback pauses when you leave
'use client'; import React, { useState, useEffect, useRef, useMemo } from 'react'; // ========================================== // 常量与配置 // ========================================== const VIEW_WIDTH = 1200; const VIEW_HEIGHT = 600; const BG_COLOR = '#7b92c6'; const DISK_COLORS = ['#FF6B6B', '#FFD93D', '#6BCB77', '#4D96FF', '#9D4EDD']; const DISK_COUNT = 4; // 碟子数量 const ANIMATION_SPEED = 1.5; // 速度系数 // 贝塞尔缓动函数 const easeInOutCubic = (t: number) => t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2

作一個和河內塔遞回解析的動畫

Playback pauses when you leave
```tsx 'use client'; import React, { useState, useEffect, useRef, useMemo } from 'react'; const VIEW_WIDTH = 1000; const VIEW_HEIGHT = 600; const CENTER_X = VIEW_WIDTH / 2; const CENTER_Y = VIEW_HEIGHT / 2; const RADIUS = 200; const BG_COLOR = "#0f172a"; // 辅助函数:计算正n边形的顶点坐标 const getPolygonPoints = (n: number, r: number, rotationOffset = -Math.PI / 2) => { const points = []; for (let i = 0; i < n; i++) { const theta = (i / n) * 2 * Math.PI + rotationOffset; points.push({ x:

割圆术如何计算圆周长

Sponsored

Ads
Playback pauses when you leave
```tsx 'use client'; import React, { useState, useEffect, useMemo } from 'react'; // --- Constants & Config --- const VIEW_WIDTH = 800; const VIEW_HEIGHT = 600; const UNIT = 40; // Pixel size of one grid unit const A_UNITS = 3; const B_UNITS = 4; const C_UNITS = 5; const COLORS = { bg: '#0f172a', // Slate 900 grid: '#1e293b', // Slate 800 gridLine: '#334155', // Slate 700 a: '#06b6d4', // Cyan 500 (Neon) b: '#8b5cf6', // Violet 500 (Neon) c: '#10b981',

勾股定理

Playback pauses when you leave
```javascript 'use client'; import React, { useState, useEffect, useMemo } from 'react'; // 视图常量 const VIEW_WIDTH = 800; const VIEW_HEIGHT = 600; const CENTER_X = VIEW_WIDTH / 2; const CENTER_Y = VIEW_HEIGHT / 2 - 20; // 几何常量 (勾股数 3-4-5 的倍数) const A = 120; // 短边 const B = 160; // 长边 const C = 200; // 斜边 const BOX_SIZE = A + B; // 280 // 动画阶段定义 const PHASES = { INIT: 0, SHOW_C: 1, TRANSITION: 2, SHOW_AB: 3, FORMULA: 4, }; export const PythagoreanTheoremView = () => { const [phase

创建一个证明勾股定理的动画

Playback pauses when you leave
'use client'; import React, { useState, useEffect, useRef, useMemo } from 'react'; const VIEW_WIDTH = 1000; const VIEW_HEIGHT = 600; const MAX_WAVE_POINTS = 600; const SPEED = 0.015; export const FourierSeriesView = () => { // Animation state const [time, setTime] = useState(0); const [nTerms, setNTerms] = useState(1); const [wavePath, setWavePath] = useState<{x: number, y: number}[]>([]); // Refs for animation loop logic to avoid closure staleness const timeRef = useRef(0);

the principle of Fourier serie

Playback pauses when you leave
'use client'; import React, { useState, useEffect, useRef, useMemo } from 'react'; // ----------------------------------------------------------------------------- // Constants & Config // ----------------------------------------------------------------------------- const WIDTH = 800; const HEIGHT = 500; const ORIGIN_X = WIDTH / 2; const ORIGIN_Y = HEIGHT / 2; const SCALE_X = 60; // pixels per unit x const SCALE_Y = 120; // pixels per unit y (amplitude) const MAX_TERMS = 9; // Number of non-z

Visualize the Taylor series with SVG animation

Playback pauses when you leave
'use client'; import React, { useState, useEffect, useRef, useMemo } from 'react'; const VIEW_WIDTH = 800; const VIEW_HEIGHT = 600; const CENTER_X = VIEW_WIDTH / 2; const CENTER_Y = VIEW_HEIGHT / 2; const SCALE = 40; // 40 pixels = 1 unit // Function Definitions const FUNCTION_DATA = [ { id: 'linear', title: '一次函数 (Linear Function)', formula: 'y = x', color: '#3B82F6', range: [-10, 10], fn: (x: number) => x, }, { id: 'quadratic', title: '二次函数 (Quadratic F

Animated plots of linear, quadratic, inverse, exponential, logarithmic, trigonometric and heart functions