独立渲染引擎就绪引擎就绪
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>智能止流箱 - 模块化平台 IFR 动画</title>
<style>
:root {
--bg-color: #07090f;
--grid-color: rgba(30, 41, 59, 0.6);
--core-color: #1e293b;
--accent-cyan: #00f0ff;
--accent-green: #39ff14;
--accent-orange: #ffaa00;
--accent-pink: #ff0055;
--text-main: #e2e8f0;
--text-dim: #94a3b8;
--font-mono: "Menlo", "Monaco", "Courier New", monospace;
--font-sans: system-ui, -apple-system, sans-serif;
}
body, html {
margin: 0;
padding: 0;
width: 100vw;
height: 100vh;
background-color: var(--bg-color);
background-image:
linear-gradient(var(--grid-color) 1px, transparent 1px),
linear-gradient(90deg, var(--grid-color) 1px, transparent 1px);
background-size: 40px 40px;
color: var(--text-main);
font-family: var(--font-sans);
overflow: hidden;
display: flex;
justify-content: center;
align-items: center;
}
/* 边缘悬浮信息面板 - 严格控制字号和位置,绝不遮挡中央 */
.hud-panel {
position: absolute;
background: rgba(15, 23, 42, 0.8);
border: 1px solid rgba(0, 240, 255, 0.2);
backdrop-filter: blur(10px);
padding: 12px 16px;
border-radius: 4px;
pointer-events: none;
z-index: 10;
}
.hud-top-left { top: 20px; left: 20px; border-left: 3px solid var(--accent-cyan); }
.hud-top-right { top: 20px; right: 20px; border-right: 3px solid var(--accent-orange); text-align: right;}
.hud-bottom-left { bottom: 20px; left: 20px; border-left: 3px solid var(--accent-green); }
.hud-bottom-right { bottom: 20px; right: 20px; border-right: 3px solid var(--accent-pink); text-align: right;}
.hud-title {
font-family: var(--font-mono);
font-size: 12px;
color: var(--accent-cyan);
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 6px;
}
.hud-data {
font-size: 11px;
color: var(--text-dim);
line-height: 1.6;
}
.hud-highlight { color: #fff; font-weight: bold; }
/* 中央 SVG 容器 */
.svg-container {
width: 100%;
height: 100%;
max-width: 1200px;
max-height: 800px;
display: flex;
justify-content: center;
align-items: center;
}
svg {
width: 100%;
height: 100%;
overflow: visible;
}
/* --- 动画类 --- */
/* 1. 核心闪烁初始化 */
.core-pulse {
animation: coreGlow 4s ease-in-out infinite alternate;
}
@keyframes coreGlow {
0% { filter: drop-shadow(0 0 5px rgba(0,240,255,0.2)); }
100% { filter: drop-shadow(0 0 20px rgba(0,240,255,0.6)); }
}
/* 2. 模块插拔动画 (IFR核心:快速对接) */
.module-dock-top { opacity: 0; animation: dockTop 1.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.5s forwards; }
.module-dock-right { opacity: 0; animation: dockRight 1.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) 1.0s forwards; }
.module-dock-bottom { opacity: 0; animation: dockBottom 1.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) 1.5s forwards; }
.module-dock-left { opacity: 0; animation: dockLeft 1.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) 2.0s forwards; }
@keyframes dockTop { 0% { transform: translateY(-100px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } }
@keyframes dockRight { 0% { transform: translateX(100px); opacity: 0; } 100% { transform: translateX(0); opacity: 1; } }
@keyframes dockBottom { 0% { transform: translateY(100px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } }
@keyframes dockLeft { 0% { transform: translateX(-100px); opacity: 0; } 100% { transform: translateX(0); opacity: 1; } }
/* 3. 数据流线 (总线通讯互联) */
.data-flow-line {
stroke-dasharray: 10 10;
stroke-dashoffset: 200;
opacity: 0;
animation: dataFlowAnim 2s linear infinite, fadeIn 0.5s ease-out 3s forwards;
}
@keyframes dataFlowAnim {
to { stroke-dashoffset: 0; }
}
@keyframes fadeIn { to { opacity: 1; } }
/* 4. 局部细节循环动画 */
.radar-wave {
opacity: 0;
animation: radarPulse 2s ease-out infinite;
animation-delay: 3s; /* 等待对接完成 */
}
.radar-wave:nth-child(2) { animation-delay: 3.5s; }
.radar-wave:nth-child(3) { animation-delay: 4.0s; }
@keyframes radarPulse {
0% { transform: scale(0.8); opacity: 1; }
100% { transform: scale(2); opacity: 0; }
}
.valve-spin {
transform-origin: center;
animation: valveRotate 4s ease-in-out infinite alternate;
animation-delay: 3.5s;
}
@keyframes valveRotate {
0% { transform: rotate(0deg); }
100% { transform: rotate(90deg); }
}
.hydraulic-move {
animation: pistonPump 3s ease-in-out infinite alternate;
animation-delay: 4s;
}
@keyframes pistonPump {
0% { transform: translateY(0); }
100% { transform: translateY(-15px); }
}
.signal-dot {
animation: blinkFast 0.5s infinite alternate;
animation-delay: 3s;
}
@keyframes blinkFast { from { opacity: 0.2; } to { opacity: 1; filter: drop-shadow(0 0 5px var(--accent-orange)); } }
</style>
</head>
<body>
<!-- UI 层:极简工程数据角标 -->
<div class="hud-panel hud-top-left">
<div class="hud-title">SYSTEM.IFR // 模块化架构</div>
<div class="hud-data">
架构模式: <span class="hud-highlight">标准接口箱 + 自由组合</span><br>
解决矛盾: 复杂定制需求 vs 生产标准化
</div>
</div>
<div class="hud-panel hud-top-right">
<div class="hud-title">PERFORMANCE // 核心参数</div>
<div class="hud-data">
模块连接: <span class="hud-highlight" style="color: var(--accent-green)">≤ 30 min (即插即用)</span><br>
扩展槽位: <span class="hud-highlight">≥ 4 组 / 散热 50W</span>
</div>
</div>
<div class="hud-panel hud-bottom-left">
<div class="hud-title">PROTOCOL // 通讯矩阵</div>
<div class="hud-data">
边缘侧: <span class="hud-highlight">Modbus RTU / TCP</span><br>
云端层: <span class="hud-highlight">OPC UA / 5G 工业以太网</span>
</div>
</div>
<div class="hud-panel hud-bottom-right">
<div class="hud-title">STATUS // 在线监控</div>
<div class="hud-data">
OEM产品化: <span class="hud-highlight" style="color: var(--accent-cyan)">ACTIVE</span><br>
统一法兰协议: <span class="hud-highlight" style="color: var(--accent-cyan)">LOCKED & SYNCED</span>
</div>
</div>
<!-- 核心 SVG 动画区 -->
<div class="svg-container">
<svg viewBox="0 0 1000 700">
<defs>
<!-- 发光滤镜 -->
<filter id="glow-cyan" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur stdDeviation="6" result="blur" />
<feMerge>
<feMergeNode in="blur" />
<feMergeNode in="SourceGraphic" />
</feMerge>
</filter>
<filter id="glow-orange" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur stdDeviation="6" result="blur" />
<feMerge>
<feMergeNode in="blur" />
<feMergeNode in="SourceGraphic" />
</feMerge>
</filter>
<!-- 渐变定义 -->
<linearGradient id="core-grad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#1e293b" />
<stop offset="100%" stop-color="#0f172a" />
</linearGradient>
<linearGradient id="slot-grad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="rgba(0, 240, 255, 0.1)" />
<stop offset="100%" stop-color="rgba(0, 240, 255, 0.0)" />
</linearGradient>
</defs>
<!-- 中心组:智能止流稳流一体化核心底板 -->
<g transform="translate(500, 350)" class="core-pulse">
<!-- 中心机箱外壳 -->
<rect x="-120" y="-120" width="240" height="240" rx="20" fill="url(#core-grad)" stroke="#334155" stroke-width="2" />
<rect x="-105" y="-105" width="210" height="210" rx="15" fill="none" stroke="rgba(0,240,255,0.2)" stroke-width="1" stroke-dasharray="4 4" />
<!-- 核心芯片 / PLC 枢纽 -->
<rect x="-40" y="-40" width="80" height="80" rx="8" fill="#0f172a" stroke="var(--accent-cyan)" stroke-width="2" filter="url(#glow-cyan)" />
<circle cx="0" cy="0" r="15" fill="none" stroke="var(--accent-cyan)" stroke-width="2" />
<circle cx="0" cy="0" r="5" fill="var(--accent-cyan)" />
<text x="0" y="5" font-family="var(--font-mono)" font-size="10" fill="var(--accent-cyan)" text-anchor="middle" dominant-baseline="middle" transform="translate(0, 25)">PLC / AI Hub</text>
<!-- 内部总线电路纹理 (四向放射) -->
<path d="M-40 0 L-105 0 M40 0 L105 0 M0 -40 L0 -105 M0 40 L0 105" stroke="#334155" stroke-width="2" />
<path d="M-30 -30 L-70 -70 M30 -30 L70 -70 M-30 30 L-70 70 M30 30 L70 70" stroke="#334155" stroke-width="1" />
<!-- 统一接口槽位 (Slots) -->
<!-- Top Slot -->
<path d="M-50 -120 L50 -120 L40 -90 L-40 -90 Z" fill="url(#slot-grad)" stroke="var(--accent-cyan)" stroke-width="1.5" stroke-dasharray="2 2" />
<text x="0" y="-100" font-family="var(--font-mono)" font-size="8" fill="var(--text-dim)" text-anchor="middle">SLOT 01 / DATA</text>
<!-- Right Slot -->
<path d="M120 -50 L120 50 L90 40 L90 -40 Z" fill="url(#slot-grad)" stroke="var(--accent-cyan)" stroke-width="1.5" stroke-dasharray="2 2" />
<text x="105" y="0" font-family="var(--font-mono)" font-size="8" fill="var(--text-dim)" text-anchor="middle" transform="rotate(90, 105, 0)">SLOT 02 / COMMS</text>
<!-- Bottom Slot -->
<path d="M-50 120 L50 120 L40 90 L-40 90 Z" fill="url(#slot-grad)" stroke="var(--accent-cyan)" stroke-width="1.5" stroke-dasharray="2 2" />
<text x="0" y="105" font-family="var(--font-mono)" font-size="8" fill="var(--text-dim)" text-anchor="middle">SLOT 03 / MECH</text>
<!-- Left Slot -->
<path d="M-120 -50 L-120 50 L-90 40 L-90 -40 Z" fill="url(#slot-grad)" stroke="var(--accent-cyan)" stroke-width="1.5" stroke-dasharray="2 2" />
<text x="-105" y="0" font-family="var(--font-mono)" font-size="8" fill="var(--text-dim)" text-anchor="middle" transform="rotate(-90, -105, 0)">SLOT 04 / FLUID</text>
</g>
<!-- 动态数据流 (对接后显示) -->
<g transform="translate(500, 350)">
<line x1="0" y1="-200" x2="0" y2="-40" stroke="var(--accent-cyan)" stroke-width="3" class="data-flow-line" />
<line x1="200" y1="0" x2="40" y2="0" stroke="var(--accent-orange)" stroke-width="3" class="data-flow-line" />
<line x1="0" y1="200" x2="0" y2="40" stroke="var(--accent-green)" stroke-width="3" class="data-flow-line" />
<line x1="-200" y1="0" x2="-40" y2="0" stroke="var(--accent-pink)" stroke-width="3" class="data-flow-line" />
</g>
<!-- 模块 1:检测模块 (Top) - 传感器阵列 -->
<g transform="translate(500, 150)" class="module-dock-top">
<rect x="-60" y="-40" width="120" height="40" rx="5" fill="#1e293b" stroke="var(--accent-cyan)" stroke-width="2" filter="url(#glow-cyan)"/>
<rect x="-20" y="-60" width="40" height="20" rx="3" fill="#334155" />
<path d="M-10 -60 L0 -80 L10 -60" fill="none" stroke="var(--text-dim)" stroke-width="2" />
<!-- 雷达波动画 -->
<circle cx="0" cy="-80" r="10" fill="none" stroke="var(--accent-cyan)" stroke-width="2" class="radar-wave" transform-origin="0 -80"/>
<circle cx="0" cy="-80" r="20" fill="none" stroke="var(--accent-cyan)" stroke-width="1.5" class="radar-wave" transform-origin="0 -80"/>
<circle cx="0" cy="-80" r="30" fill="none" stroke="var(--accent-cyan)" stroke-width="1" class="radar-wave" transform-origin="0 -80"/>
<!-- 统一法兰接口底座 -->
<rect x="-40" y="0" width="80" height="15" fill="#0f172a" stroke="var(--accent-cyan)" stroke-width="2" />
<text x="0" y="-15" font-family="var(--font-sans)" font-size="12" fill="#fff" text-anchor="middle" font-weight="bold">检测模块 (多传感器)</text>
</g>
<!-- 模块 2:通讯模块 (Right) - 网关/5G -->
<g transform="translate(700, 350)" class="module-dock-right">
<rect x="0" y="-60" width="80" height="120" rx="5" fill="#1e293b" stroke="var(--accent-orange)" stroke-width="2" filter="url(#glow-orange)"/>
<!-- 统一法兰接口底座 -->
<rect x="-15" y="-40" width="15" height="80" fill="#0f172a" stroke="var(--accent-orange)" stroke-width="2" />
<!-- 5G天线 -->
<line x1="80" y1="-40" x2="110" y2="-60" stroke="var(--accent-orange)" stroke-width="3" stroke-linecap="round"/>
<line x1="80" y1="-20" x2="120" y2="-20" stroke="var(--accent-orange)" stroke-width="3" stroke-linecap="round"/>
<!-- 闪烁信号灯 -->
<circle cx="20" cy="-40" r="3" fill="var(--accent-orange)" class="signal-dot"/>
<circle cx="40" cy="-40" r="3" fill="var(--accent-orange)" class="signal-dot" style="animation-delay: 3.2s"/>
<circle cx="60" cy="-40" r="3" fill="var(--accent-orange)" class="signal-dot" style="animation-delay: 3.4s"/>
<text x="40" y="20" font-family="var(--font-sans)" font-size="12" fill="#fff" text-anchor="middle" font-weight="bold" transform="rotate(90, 40, 20)">通讯模块 (5G/网关)</text>
</g>
<!-- 模块 3:筛面姿态模块 (Bottom) - 四角升降/液压 -->
<g transform="translate(500, 550)" class="module-dock-bottom">
<rect x="-70" y="0" width="140" height="50" rx="5" fill="#1e293b" stroke="var(--accent-green)" stroke-width="2" />
<!-- 统一法兰接口底座 -->
<rect x="-40" y="-15" width="80" height="15" fill="#0f172a" stroke="var(--accent-green)" stroke-width="2" />
<!-- 液压伸缩杆 (双侧) -->
<g class="hydraulic-move">
<rect x="-50" y="50" width="16" height="40" fill="#475569" rx="2" />
<rect x="34" y="50" width="16" height="40" fill="#475569" rx="2" />
</g>
<rect x="-55" y="30" width="26" height="30" fill="#334155" />
<rect x="29" y="30" width="26" height="30" fill="#334155" />
<text x="0" y="25" font-family="var(--font-sans)" font-size="12" fill="#fff" text-anchor="middle" font-weight="bold">姿态模块 (升降执行)</text>
</g>
<!-- 模块 4:进料控制模块 (Left) - 阀门组 -->
<g transform="translate(300, 350)" class="module-dock-left">
<rect x="-100" y="-50" width="100" height="100" rx="5" fill="#1e293b" stroke="var(--accent-pink)" stroke-width="2" />
<!-- 统一法兰接口底座 -->
<rect x="0" y="-40" width="15" height="80" fill="#0f172a" stroke="var(--accent-pink)" stroke-width="2" />
<!-- 管道与蝶阀 -->
<path d="M-120 -20 L-80 -20 L-80 20 L-120 20 Z" fill="#334155" />
<circle cx="-50" cy="0" r="30" fill="none" stroke="#475569" stroke-width="4" />
<!-- 旋转的阀门叶片 -->
<g transform="translate(-50, 0)">
<line x1="-25" y1="0" x2="25" y2="0" stroke="var(--accent-pink)" stroke-width="4" class="valve-spin" />
</g>
<text x="-50" y="-60" font-family="var(--font-sans)" font-size="12" fill="#fff" text-anchor="middle" font-weight="bold">进料模块 (智能阀门)</text>
</g>
<!-- 指引线与功能高亮标签 (强调理想解) -->
<g opacity="0" style="animation: fadeIn 1s ease-out 4.5s forwards;">
<!-- 左上角指向插拔接口 -->
<path d="M420 270 L380 230 L250 230" fill="none" stroke="var(--text-dim)" stroke-width="1" />
<circle cx="420" cy="270" r="3" fill="var(--accent-cyan)" />
<text x="250" y="220" font-family="var(--font-mono)" font-size="10" fill="var(--accent-cyan)" text-anchor="start">统一法兰/接插接口 (消除组装矛盾)</text>
<!-- 右下角指向数据核心 -->
<path d="M540 390 L600 450 L750 450" fill="none" stroke="var(--text-dim)" stroke-width="1" />
<circle cx="540" cy="390" r="3" fill="var(--accent-orange)" />
<text x="750" y="440" font-family="var(--font-mono)" font-size="10" fill="var(--accent-orange)" text-anchor="end">即插即联: 物理对接即完成数据打通</text>
</g>
</svg>
</div>
</body>
</html>
积分规则:每轮对话扣10分
等待动画代码生成...
