// ===== demos/rhythm/panel-grid-moves/ComicPanelSplit.tsx ===== // comic-panel-split|漫画分格并列 // FakeDashboard A(加 KPI 数字块)全屏 20f → 咔咔咔切成 3 个斜线分格 // (12° 斜边,10px 白缝 + 墨线描边),逐格 2f 间隔弹入(3f scale 1.06→1 // + 加深脉冲)。三格 = 同页面三机位:全景 1x / 卡片特写 1.9x / 数字区 // 特写 2.6x。定格 18f 各格缓慢微推近保持活 → 第三格斜边框 12f out-cubic // 扩张吃掉全屏成为下一镜特写。57f 起摘罩(特写直出、分格结构与缝线 // 全部卸载),57–150f 真静止 93f ≥ 40f。帧确定,无随机源。 import React from 'react'; import { AbsoluteFill, useCurrentFrame, interpolate, Easing } from 'remotion'; import { FakeDashboard, G } from '../../_fixtures/Fixtures'; const SPLIT = 20; // 全屏 A 结束、开始分格 const POP = 3; // 每格弹入 3f const STAGGER = 2; // 逐格 2f 间隔 const HOLD_END = 45; // 27f 弹完 + 定格 18f const EXPAND_END = 57; // 第三格 12f 扩张结束 // 57–150 真静止 93f // 斜边 12°:tan(12°)×1080 ≈ 230,顶边比底边右移 230 // 缝 10px(水平半宽 5px) // 边界1:顶 750 / 底 520;边界2:顶 1405 / 底 1175 const outCubic = Easing.out(Easing.cubic); // 页面 = FakeDashboard A + 左上卡片内 KPI 数字块(给"数字区特写"一个锚点) const PageA: React.FC = () => (