644 行
31 KiB
Python
644 行
31 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""
|
||
企业级现代中式浅色专业风矢量配图生成引擎 (Advanced Modern Sino-Tech Abstract Visuals Generator)
|
||
设计准则:
|
||
1. 纯粹高级抽象设计:彻底摒弃生成的虚假后台/假大屏界面,杜绝纯文字介绍类图片,纯粹以现代中式工程美学几何、拓扑、流光与留白呈现。
|
||
2. 现代中式浅色专业风:
|
||
- 背景:#FFFFFF 至 #F8FAFC 浅色专业底基,融入 0.75px 雅致东方窗棂微网格
|
||
- 主色:#2563EB 科技蓝(含 #1D4ED8, #3B82F6 渐变)
|
||
- 辅色:#06B6D4 沉静青、#7C3AED 优雅紫
|
||
- 材质与光影:半透明磨砂亚克力几何切片、微透视等轴测空间(Isometric)、柔和阴影与高亮流光节点
|
||
- 东方印记:右上角保留一枚极简精致小巧的朱砂印章微标(仅 1 个单字),作为东方文化印记,无任何冗余文字。
|
||
"""
|
||
import os
|
||
|
||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||
TARGET_DIR = os.path.join(BASE_DIR, 'public', 'assets', 'addons', 'official', 'images', 'showcases')
|
||
os.makedirs(TARGET_DIR, exist_ok=True)
|
||
|
||
COMMON_DEFS = '''
|
||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||
<stop offset="0%" stop-color="#FFFFFF"/>
|
||
<stop offset="100%" stop-color="#F8FAFC"/>
|
||
</linearGradient>
|
||
<linearGradient id="blueGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||
<stop offset="0%" stop-color="#2563EB"/>
|
||
<stop offset="100%" stop-color="#1D4ED8"/>
|
||
</linearGradient>
|
||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||
<stop offset="0%" stop-color="#06B6D4"/>
|
||
<stop offset="100%" stop-color="#0EA5E9"/>
|
||
</linearGradient>
|
||
<linearGradient id="purpleGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||
<stop offset="0%" stop-color="#7C3AED"/>
|
||
<stop offset="100%" stop-color="#6366F1"/>
|
||
</linearGradient>
|
||
<linearGradient id="glassGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.9"/>
|
||
<stop offset="100%" stop-color="#F1F5F9" stop-opacity="0.65"/>
|
||
</linearGradient>
|
||
<linearGradient id="glowGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||
<stop offset="0%" stop-color="#2563EB" stop-opacity="0.8"/>
|
||
<stop offset="50%" stop-color="#06B6D4" stop-opacity="0.9"/>
|
||
<stop offset="100%" stop-color="#7C3AED" stop-opacity="0.8"/>
|
||
</linearGradient>
|
||
<pattern id="lattice" width="28" height="28" patternUnits="userSpaceOnUse">
|
||
<path d="M 28 0 L 0 0 0 28" fill="none" stroke="#E2E8F0" stroke-width="0.75" stroke-dasharray="3,3"/>
|
||
</pattern>
|
||
<filter id="softGlow" x="-30%" y="-30%" width="160%" height="160%">
|
||
<feGaussianBlur stdDeviation="8" result="blur"/>
|
||
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
|
||
</filter>
|
||
<filter id="cardShadow" x="-20%" y="-20%" width="140%" height="140%">
|
||
<feDropShadow dx="0" dy="8" stdDeviation="12" flood-color="#0F172A" flood-opacity="0.08"/>
|
||
</filter>
|
||
'''
|
||
|
||
def make_seal(x, y, char):
|
||
return f'''
|
||
<g transform="translate({x}, {y})">
|
||
<rect width="26" height="26" rx="4" fill="#FEF2F2" stroke="#DC2626" stroke-width="1.2"/>
|
||
<rect x="2.5" y="2.5" width="21" height="21" rx="2" fill="none" stroke="#DC2626" stroke-width="0.5" stroke-opacity="0.5"/>
|
||
<text x="13" y="18" fill="#DC2626" font-family="'Noto Serif SC', 'SimSun', serif" font-size="13" font-weight="700" text-anchor="middle">{char}</text>
|
||
</g>
|
||
'''
|
||
|
||
# 1. 服务:软件开发《榫卯解耦 · 微服务立方拓扑》
|
||
def build_service_middle():
|
||
return f'''<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<defs>
|
||
{COMMON_DEFS}
|
||
</defs>
|
||
|
||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||
|
||
{make_seal(554, 20, "研")}
|
||
|
||
<g transform="translate(300, 195)">
|
||
<!-- 东方天圆地方经纬轨道 -->
|
||
<ellipse cx="0" cy="55" rx="220" ry="85" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="6,6"/>
|
||
<ellipse cx="0" cy="55" rx="160" ry="60" fill="none" stroke="#CBD5E1" stroke-width="1"/>
|
||
|
||
<!-- 标尺刻度线与流向标 -->
|
||
<path d="M -160 55 L -140 45 M 160 55 L 140 45" stroke="#94A3B8" stroke-width="1"/>
|
||
|
||
<!-- 左翼解耦子节点:网关与调度中枢 -->
|
||
<g transform="translate(-145, 45)" filter="url(#cardShadow)">
|
||
<polygon points="0,-18 32,-3 0,14 -32,-3" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1.2"/>
|
||
<polygon points="-32,-3 0,14 0,30 -32,13" fill="#E2E8F0"/>
|
||
<polygon points="0,14 32,-3 32,13 0,30" fill="#F1F5F9"/>
|
||
<circle cx="0" cy="-3" r="3.5" fill="#2563EB"/>
|
||
</g>
|
||
|
||
<!-- 右翼解耦子节点:持久化集群与数据资产 -->
|
||
<g transform="translate(145, 45)" filter="url(#cardShadow)">
|
||
<polygon points="0,-18 32,-3 0,14 -32,-3" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1.2"/>
|
||
<polygon points="-32,-3 0,14 0,30 -32,13" fill="#E2E8F0"/>
|
||
<polygon points="0,14 32,-3 32,13 0,30" fill="#F1F5F9"/>
|
||
<circle cx="0" cy="-3" r="3.5" fill="#06B6D4"/>
|
||
</g>
|
||
|
||
<!-- 拓扑神经链路 -->
|
||
<path d="M -145 45 L 0 -15 M 145 45 L 0 -15 M 0 -15 L 0 -80" stroke="#94A3B8" stroke-width="1.5" stroke-dasharray="4,4"/>
|
||
<path d="M -90 75 Q 0 35 90 75" fill="none" stroke="url(#blueGrad)" stroke-width="1.8" opacity="0.7"/>
|
||
|
||
<!-- 中层微服务立方咬合阵列 -->
|
||
<g transform="translate(-65, 12)" filter="url(#cardShadow)">
|
||
<polygon points="0,-24 38,-4 0,16 -38,-4" fill="url(#blueGrad)"/>
|
||
<polygon points="-38,-4 0,16 0,40 -38,20" fill="#1D4ED8"/>
|
||
<polygon points="0,16 38,-4 38,20 0,40" fill="#1E40AF"/>
|
||
</g>
|
||
<g transform="translate(65, 12)" filter="url(#cardShadow)">
|
||
<polygon points="0,-24 38,-4 0,16 -38,-4" fill="url(#cyanGrad)"/>
|
||
<polygon points="-38,-4 0,16 0,40 -38,20" fill="#0891B2"/>
|
||
<polygon points="0,16 38,-4 38,20 0,40" fill="#0E7490"/>
|
||
</g>
|
||
|
||
<!-- 顶层核心枢纽:高可用微服务中台大盘 -->
|
||
<g transform="translate(0, -65)" filter="url(#cardShadow)">
|
||
<circle cx="0" cy="0" r="52" fill="#EFF6FF" opacity="0.85"/>
|
||
<circle cx="0" cy="0" r="42" fill="none" stroke="#2563EB" stroke-width="1.2" stroke-dasharray="6,3"/>
|
||
<polygon points="0,-36 34,-14 0,10 -34,-14" fill="url(#glassGrad)" stroke="#2563EB" stroke-width="1.5"/>
|
||
<polygon points="-34,-14 0,10 0,36 -34,14" fill="#DBEAFE"/>
|
||
<polygon points="0,10 34,-14 34,14 0,36" fill="#BFDBFE"/>
|
||
<circle cx="0" cy="10" r="6" fill="#2563EB" filter="url(#softGlow)"/>
|
||
<circle cx="0" cy="10" r="10" fill="none" stroke="#2563EB" stroke-width="1" opacity="0.6"/>
|
||
</g>
|
||
|
||
<!-- 空间浮动数据微粒 -->
|
||
<circle cx="-120" cy="-30" r="3.5" fill="#2563EB" opacity="0.6"/>
|
||
<circle cx="115" cy="-40" r="4" fill="#06B6D4" opacity="0.7"/>
|
||
<circle cx="-50" cy="95" r="3" fill="#7C3AED" opacity="0.5"/>
|
||
<circle cx="80" cy="85" r="3.5" fill="#2563EB" opacity="0.6"/>
|
||
</g>
|
||
</svg>'''
|
||
|
||
# 2. 服务:APP与小程序定制《多轨天体 · 动量同频》
|
||
def build_service_app():
|
||
return f'''<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<defs>
|
||
{COMMON_DEFS}
|
||
</defs>
|
||
|
||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||
|
||
{make_seal(554, 20, "端")}
|
||
|
||
<g transform="translate(300, 190)">
|
||
<!-- 空间同心流动轨道环 (iOS / Android / 微信多端协同) -->
|
||
<ellipse cx="0" cy="0" rx="210" ry="80" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="6,4" transform="rotate(-15)"/>
|
||
<ellipse cx="0" cy="0" rx="170" ry="65" fill="none" stroke="#CBD5E1" stroke-width="1.2" transform="rotate(20)"/>
|
||
<ellipse cx="0" cy="0" rx="120" ry="50" fill="none" stroke="#93C5FD" stroke-width="1" stroke-dasharray="4,4"/>
|
||
|
||
<!-- 核心设备与多端界面等轴测悬浮板 -->
|
||
<g transform="translate(-70, -25)" filter="url(#cardShadow)">
|
||
<polygon points="0,-45 42,-18 0,10 -42,-18" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1.2"/>
|
||
<polygon points="-42,-18 0,10 0,65 -42,38" fill="#FFFFFF" stroke="#E2E8F0"/>
|
||
<polygon points="0,10 42,-18 42,38 0,65" fill="#F8FAFC" stroke="#E2E8F0"/>
|
||
<!-- 极简微界面线条与卡片 -->
|
||
<line x1="-28" y1="2" x2="0" y2="12" stroke="#CBD5E1" stroke-width="2" stroke-linecap="round"/>
|
||
<circle cx="-15" cy="28" r="8" fill="#EFF6FF" stroke="#BFDBFE"/>
|
||
<rect x="5" y="24" width="22" height="16" rx="2" fill="#F1F5F9" stroke="#E2E8F0"/>
|
||
</g>
|
||
|
||
<g transform="translate(65, 20)" filter="url(#cardShadow)">
|
||
<polygon points="0,-50 48,-20 0,12 -48,-20" fill="url(#blueGrad)"/>
|
||
<polygon points="-48,-20 0,12 0,70 -48,38" fill="#1D4ED8"/>
|
||
<polygon points="0,12 48,-20 48,38 0,70" fill="#1E40AF"/>
|
||
<circle cx="0" cy="-20" r="14" fill="#FFFFFF" opacity="0.9"/>
|
||
<circle cx="0" cy="-20" r="6" fill="#2563EB"/>
|
||
</g>
|
||
|
||
<!-- 60fps 动量流光粒子穿梭 -->
|
||
<path d="M -150 -40 C -80 -90 40 -80 140 -20" fill="none" stroke="url(#cyanGrad)" stroke-width="2.5" stroke-linecap="round"/>
|
||
<path d="M 140 30 C 80 80 -40 90 -140 40" fill="none" stroke="url(#purpleGrad)" stroke-width="2" stroke-linecap="round" stroke-dasharray="5,3"/>
|
||
|
||
<circle cx="140" cy="-20" r="5" fill="#06B6D4" filter="url(#softGlow)"/>
|
||
<circle cx="-140" cy="40" r="4.5" fill="#7C3AED" filter="url(#softGlow)"/>
|
||
<circle cx="0" cy="-80" r="3.5" fill="#2563EB"/>
|
||
<circle cx="0" cy="82" r="3" fill="#06B6D4"/>
|
||
</g>
|
||
</svg>'''
|
||
|
||
# 3. 服务:智能体开发《方圆之镜 · 多维向量星云》
|
||
def build_service_agent():
|
||
return f'''<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<defs>
|
||
{COMMON_DEFS}
|
||
</defs>
|
||
|
||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||
|
||
{make_seal(554, 20, "智")}
|
||
|
||
<g transform="translate(300, 190)">
|
||
<!-- 外层东方方圆防护边界 (物理隔离与合规) -->
|
||
<rect x="-115" y="-115" width="230" height="230" rx="8" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="6,4"/>
|
||
<circle cx="0" cy="0" r="115" fill="none" stroke="#CBD5E1" stroke-width="1"/>
|
||
<circle cx="0" cy="0" r="85" fill="#FAF5FF" opacity="0.75"/>
|
||
|
||
<!-- 高维多面体向量结界 -->
|
||
<polygon points="0,-75 65,-37 65,37 0,75 -65,37 -65,-37" fill="none" stroke="#C4B5FD" stroke-width="1.2"/>
|
||
<polygon points="0,-55 45,-26 45,26 0,55 -45,26 -45,-26" fill="none" stroke="#93C5FD" stroke-width="1.2" stroke-dasharray="4,3"/>
|
||
|
||
<!-- 放射状 RAG 向量探寻光栅 -->
|
||
<line x1="0" y1="-75" x2="0" y2="75" stroke="#CBD5E1" stroke-width="0.8" stroke-dasharray="3,3"/>
|
||
<line x1="-65" y1="-37" x2="65" y2="37" stroke="#CBD5E1" stroke-width="0.8" stroke-dasharray="3,3"/>
|
||
<line x1="-65" y1="37" x2="65" y2="-37" stroke="#CBD5E1" stroke-width="0.8" stroke-dasharray="3,3"/>
|
||
|
||
<!-- 知识库星云聚类核心 (Agent Core) -->
|
||
<circle cx="0" cy="0" r="32" fill="url(#purpleGrad)" filter="url(#cardShadow)"/>
|
||
<circle cx="0" cy="0" r="22" fill="url(#blueGrad)"/>
|
||
<circle cx="0" cy="0" r="10" fill="#FFFFFF" filter="url(#softGlow)"/>
|
||
|
||
<!-- 命中特征粒子矩阵 -->
|
||
<circle cx="0" cy="-75" r="4.5" fill="#2563EB"/>
|
||
<circle cx="65" cy="-37" r="4.5" fill="#06B6D4"/>
|
||
<circle cx="65" cy="37" r="4.5" fill="#7C3AED"/>
|
||
<circle cx="0" cy="75" r="4.5" fill="#2563EB"/>
|
||
<circle cx="-65" cy="37" r="4.5" fill="#06B6D4"/>
|
||
<circle cx="-65" cy="-37" r="4.5" fill="#7C3AED"/>
|
||
|
||
<circle cx="-35" cy="-45" r="3" fill="#2563EB" opacity="0.6"/>
|
||
<circle cx="40" cy="-50" r="3" fill="#7C3AED" opacity="0.6"/>
|
||
<circle cx="-45" cy="40" r="3" fill="#06B6D4" opacity="0.6"/>
|
||
<circle cx="48" cy="42" r="3" fill="#2563EB" opacity="0.6"/>
|
||
</g>
|
||
</svg>'''
|
||
|
||
# 4. 产品:全场景商城《脉络分发 · 裂变星芒》
|
||
def build_product_mall():
|
||
return f'''<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<defs>
|
||
{COMMON_DEFS}
|
||
</defs>
|
||
|
||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||
|
||
{make_seal(554, 20, "商")}
|
||
|
||
<g transform="translate(300, 195)">
|
||
<!-- 东方开阔地平基底 -->
|
||
<ellipse cx="0" cy="65" rx="210" ry="75" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="5,4"/>
|
||
|
||
<!-- 底层全渠道汇聚大台 (Omnichannel Hub) -->
|
||
<polygon points="0,-25 150,42 0,110 -150,42" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1.2"/>
|
||
<polygon points="-150,42 0,110 0,126 -150,58" fill="#E2E8F0"/>
|
||
<polygon points="0,110 150,42 150,58 0,126" fill="#F1F5F9"/>
|
||
|
||
<!-- 核心交易与分账立方体 -->
|
||
<g transform="translate(0, 10)" filter="url(#cardShadow)">
|
||
<polygon points="0,-36 44,-14 0,12 -44,-14" fill="url(#blueGrad)"/>
|
||
<polygon points="-44,-14 0,12 0,46 -44,22" fill="#1D4ED8"/>
|
||
<polygon points="0,12 44,-14 44,22 0,46" fill="#1E40AF"/>
|
||
</g>
|
||
|
||
<!-- 分销裂变支流矩阵:多商户入驻与渠道分销 -->
|
||
<g transform="translate(-85, -20)" filter="url(#cardShadow)">
|
||
<polygon points="0,-26 32,-10 0,8 -32,-10" fill="url(#cyanGrad)"/>
|
||
<polygon points="-32,-10 0,8 0,32 -32,14" fill="#0891B2"/>
|
||
<polygon points="0,8 32,-10 32,14 0,32" fill="#0E7490"/>
|
||
</g>
|
||
|
||
<g transform="translate(85, -20)" filter="url(#cardShadow)">
|
||
<polygon points="0,-26 32,-10 0,8 -32,-10" fill="url(#purpleGrad)"/>
|
||
<polygon points="-32,-10 0,8 0,32 -32,14" fill="#6D28D9"/>
|
||
<polygon points="0,8 32,-10 32,14 0,32" fill="#5B21B6"/>
|
||
</g>
|
||
|
||
<!-- 顶端私域流量聚合枢纽 -->
|
||
<g transform="translate(0, -78)" filter="url(#cardShadow)">
|
||
<polygon points="0,-20 25,-7 0,7 -25,-7" fill="url(#glassGrad)" stroke="#2563EB" stroke-width="1.2"/>
|
||
<polygon points="-25,-7 0,7 0,22 -25,9" fill="#DBEAFE"/>
|
||
<polygon points="0,7 25,-7 25,9 0,22" fill="#BFDBFE"/>
|
||
<circle cx="0" cy="0" r="3.5" fill="#2563EB"/>
|
||
</g>
|
||
|
||
<!-- 斐波那契能量流线互锁 -->
|
||
<path d="M -85 -10 Q 0 -55 85 -10" fill="none" stroke="url(#blueGrad)" stroke-width="2.2" stroke-linecap="round"/>
|
||
<path d="M 85 10 Q 0 55 -85 10" fill="none" stroke="url(#cyanGrad)" stroke-width="2" stroke-linecap="round" stroke-dasharray="4,3"/>
|
||
<line x1="0" y1="-55" x2="0" y2="-26" stroke="#2563EB" stroke-width="1.5" stroke-dasharray="2,2"/>
|
||
|
||
<circle cx="-40" cy="-35" r="4" fill="#2563EB" opacity="0.7"/>
|
||
<circle cx="50" cy="-35" r="3.5" fill="#7C3AED" opacity="0.7"/>
|
||
<circle cx="0" cy="65" r="4" fill="#06B6D4" opacity="0.7"/>
|
||
</g>
|
||
</svg>'''
|
||
|
||
# 5. 产品:智能商业收银《双核咬合 · 确定性时钟》
|
||
def build_product_pos():
|
||
return f'''<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<defs>
|
||
{COMMON_DEFS}
|
||
</defs>
|
||
|
||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||
|
||
{make_seal(554, 20, "笃")}
|
||
|
||
<g transform="translate(300, 190)">
|
||
<!-- 极精确的外围时钟刻度脉冲 -->
|
||
<circle cx="0" cy="0" r="145" fill="none" stroke="#E2E8F0" stroke-width="1" stroke-dasharray="4,4"/>
|
||
<circle cx="0" cy="0" r="120" fill="none" stroke="#CBD5E1" stroke-width="1.2"/>
|
||
<circle cx="0" cy="0" r="85" fill="#EFF6FF" opacity="0.75"/>
|
||
|
||
<!-- 软硬件一体双向坚固护盾结构 (离线记账与在线秒级核销) -->
|
||
<path d="M 0 -95 L 60 -60 V 0 C 60 50 0 95 0 95 C 0 95 -60 50 -60 0 V -60 Z" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1.5" filter="url(#cardShadow)"/>
|
||
<path d="M 0 -80 L 46 -50 V 0 C 46 38 0 76 0 76 C 0 76 -46 38 -46 0 V -50 Z" fill="none" stroke="#93C5FD" stroke-width="1.2"/>
|
||
|
||
<!-- 核心确定性原子事务锁 -->
|
||
<circle cx="0" cy="0" r="32" fill="url(#blueGrad)" filter="url(#softGlow)"/>
|
||
<circle cx="0" cy="0" r="16" fill="#FFFFFF"/>
|
||
<circle cx="0" cy="0" r="8" fill="#1D4ED8"/>
|
||
|
||
<!-- 左右双向对称通信信道 (左:外设硬件驱动 / 右:云端资金清算) -->
|
||
<line x1="-135" y1="0" x2="-32" y2="0" stroke="url(#cyanGrad)" stroke-width="2.5" stroke-linecap="round"/>
|
||
<circle cx="-135" cy="0" r="6" fill="#06B6D4"/>
|
||
<circle cx="-135" cy="0" r="10" fill="none" stroke="#06B6D4" stroke-width="1" opacity="0.5"/>
|
||
|
||
<line x1="32" y1="0" x2="135" y2="0" stroke="url(#blueGrad)" stroke-width="2.5" stroke-linecap="round"/>
|
||
<circle cx="135" cy="0" r="6" fill="#2563EB"/>
|
||
<circle cx="135" cy="0" r="10" fill="none" stroke="#2563EB" stroke-width="1" opacity="0.5"/>
|
||
|
||
<line x1="0" y1="-95" x2="0" y2="-130" stroke="#7C3AED" stroke-width="2" stroke-dasharray="3,3"/>
|
||
<circle cx="0" cy="-130" r="5" fill="#7C3AED"/>
|
||
</g>
|
||
</svg>'''
|
||
|
||
# 6. 产品:全链路进销存《晶格仓位 · 动态流向轴》
|
||
def build_product_erp():
|
||
return f'''<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<defs>
|
||
{COMMON_DEFS}
|
||
</defs>
|
||
|
||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||
|
||
{make_seal(554, 20, "准")}
|
||
|
||
<g transform="translate(300, 190)">
|
||
<!-- 空间底座仓储经纬线 -->
|
||
<ellipse cx="0" cy="70" rx="210" ry="75" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="5,5"/>
|
||
|
||
<!-- 仓储库位等轴测透明格栅 (采购/入库/盘点/调拨) -->
|
||
<g transform="translate(-90, 20)" filter="url(#cardShadow)">
|
||
<polygon points="0,-34 42,-12 0,10 -42,-12" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1.2"/>
|
||
<polygon points="-42,-12 0,10 0,44 -42,22" fill="#E2E8F0"/>
|
||
<polygon points="0,10 42,-12 42,22 0,44" fill="#F1F5F9"/>
|
||
<line x1="-21" y1="-1" x2="21" y2="-23" stroke="#94A3B8" stroke-width="1"/>
|
||
<circle cx="0" cy="-12" r="4" fill="#2563EB"/>
|
||
</g>
|
||
|
||
<g transform="translate(90, 20)" filter="url(#cardShadow)">
|
||
<polygon points="0,-34 42,-12 0,10 -42,-12" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1.2"/>
|
||
<polygon points="-42,-12 0,10 0,44 -42,22" fill="#E2E8F0"/>
|
||
<polygon points="0,10 42,-12 42,22 0,44" fill="#F1F5F9"/>
|
||
<circle cx="0" cy="-12" r="4" fill="#06B6D4"/>
|
||
</g>
|
||
|
||
<!-- 核心业财一体化平衡中枢 -->
|
||
<g transform="translate(0, -40)" filter="url(#cardShadow)">
|
||
<circle cx="0" cy="0" r="46" fill="none" stroke="#2563EB" stroke-width="1.2" stroke-dasharray="5,4"/>
|
||
<circle cx="0" cy="0" r="35" fill="url(#blueGrad)"/>
|
||
<circle cx="0" cy="0" r="16" fill="#FFFFFF"/>
|
||
<circle cx="0" cy="0" r="7" fill="#1D4ED8"/>
|
||
</g>
|
||
|
||
<!-- 批次溯源与流转能量曲线 -->
|
||
<path d="M -90 10 Q 0 -20 90 10" fill="none" stroke="url(#cyanGrad)" stroke-width="2.2" stroke-linecap="round"/>
|
||
<path d="M 90 32 Q 0 65 -90 32" fill="none" stroke="#2563EB" stroke-width="2" stroke-linecap="round" stroke-dasharray="5,3"/>
|
||
|
||
<line x1="0" y1="5" x2="0" y2="45" stroke="#CBD5E1" stroke-width="1.5" stroke-dasharray="3,3"/>
|
||
<circle cx="0" cy="45" r="4" fill="#7C3AED"/>
|
||
</g>
|
||
</svg>'''
|
||
|
||
# 7. 产品:云原生 SaaS《多层平行切片 · 悬浮架构》
|
||
def build_product_saas():
|
||
return f'''<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<defs>
|
||
{COMMON_DEFS}
|
||
</defs>
|
||
|
||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||
|
||
{make_seal(554, 20, "云")}
|
||
|
||
<g transform="translate(300, 190)">
|
||
<!-- 空间基底椭圆 -->
|
||
<ellipse cx="0" cy="70" rx="210" ry="75" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="6,4"/>
|
||
|
||
<!-- 第 1 层切片:数据存储与物理隔离底座 -->
|
||
<g transform="translate(0, 60)" filter="url(#cardShadow)">
|
||
<polygon points="0,-28 125,14 0,55 -125,14" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1.2"/>
|
||
<polygon points="-125,14 0,55 0,66 -125,25" fill="#E2E8F0"/>
|
||
<polygon points="0,55 125,14 125,25 0,66" fill="#F1F5F9"/>
|
||
<circle cx="-60" cy="14" r="3.5" fill="#2563EB"/>
|
||
<circle cx="60" cy="14" r="3.5" fill="#06B6D4"/>
|
||
</g>
|
||
|
||
<!-- 第 2 层切片:微服务与多租户逻辑强隔离中枢 -->
|
||
<g transform="translate(0, 5)" filter="url(#cardShadow)">
|
||
<polygon points="0,-28 125,14 0,55 -125,14" fill="url(#glassGrad)" stroke="#93C5FD" stroke-width="1.2"/>
|
||
<polygon points="-125,14 0,55 0,66 -125,25" fill="#BFDBFE"/>
|
||
<polygon points="0,55 125,14 125,25 0,66" fill="#DBEAFE"/>
|
||
<circle cx="0" cy="14" r="6" fill="#2563EB" filter="url(#softGlow)"/>
|
||
</g>
|
||
|
||
<!-- 第 3 层切片:云原生网关与应用多维接入层 -->
|
||
<g transform="translate(0, -50)" filter="url(#cardShadow)">
|
||
<polygon points="0,-28 125,14 0,55 -125,14" fill="url(#glassGrad)" stroke="#C4B5FD" stroke-width="1.2"/>
|
||
<polygon points="-125,14 0,55 0,66 -125,25" fill="#DDD6FE"/>
|
||
<polygon points="0,55 125,14 125,25 0,66" fill="#EDE9FE"/>
|
||
<circle cx="0" cy="14" r="7" fill="#7C3AED" filter="url(#softGlow)"/>
|
||
</g>
|
||
|
||
<!-- 垂直穿透的弹性集群伸缩中轴 (Elastic Spinal Column) -->
|
||
<line x1="0" y1="-85" x2="0" y2="80" stroke="url(#blueGrad)" stroke-width="3" stroke-linecap="round"/>
|
||
<line x1="-70" y1="-35" x2="-70" y2="68" stroke="#CBD5E1" stroke-width="1" stroke-dasharray="3,3"/>
|
||
<line x1="70" y1="-35" x2="70" y2="68" stroke="#CBD5E1" stroke-width="1" stroke-dasharray="3,3"/>
|
||
|
||
<circle cx="-140" cy="-25" r="4.5" fill="#06B6D4"/>
|
||
<circle cx="140" cy="-25" r="4.5" fill="#2563EB"/>
|
||
</g>
|
||
</svg>'''
|
||
|
||
# 8. 案例:大型快消供应链《经纬枢纽 · 吞吐波峰》
|
||
def build_case_distrib():
|
||
return f'''<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<defs>
|
||
{COMMON_DEFS}
|
||
</defs>
|
||
|
||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||
|
||
{make_seal(554, 20, "通")}
|
||
|
||
<g transform="translate(300, 190)">
|
||
<!-- 经纬拓扑网格底台 -->
|
||
<ellipse cx="0" cy="20" rx="215" ry="95" fill="none" stroke="#E2E8F0" stroke-width="1.2" stroke-dasharray="5,4"/>
|
||
|
||
<!-- 核心调度枢纽 (全国订货大中台) -->
|
||
<circle cx="0" cy="0" r="50" fill="#EFF6FF" opacity="0.85"/>
|
||
<circle cx="0" cy="0" r="36" fill="url(#blueGrad)" filter="url(#cardShadow)"/>
|
||
<circle cx="0" cy="0" r="16" fill="#FFFFFF"/>
|
||
<circle cx="0" cy="0" r="7" fill="#1D4ED8"/>
|
||
|
||
<!-- 分支节点 A:区域分销网络 -->
|
||
<g transform="translate(-140, -40)">
|
||
<line x1="0" y1="0" x2="115" y2="32" stroke="#93C5FD" stroke-width="1.8" stroke-dasharray="4,3"/>
|
||
<circle cx="0" cy="0" r="22" fill="url(#glassGrad)" stroke="#2563EB" stroke-width="1.5"/>
|
||
<circle cx="0" cy="0" r="8" fill="#2563EB"/>
|
||
</g>
|
||
|
||
<!-- 分支节点 B:全渠道订单汇聚 -->
|
||
<g transform="translate(140, -40)">
|
||
<line x1="0" y1="0" x2="-115" y2="32" stroke="#93C5FD" stroke-width="1.8" stroke-dasharray="4,3"/>
|
||
<circle cx="0" cy="0" r="22" fill="url(#glassGrad)" stroke="#06B6D4" stroke-width="1.5"/>
|
||
<circle cx="0" cy="0" r="8" fill="#06B6D4"/>
|
||
</g>
|
||
|
||
<!-- 底部仓储与履约节点 -->
|
||
<g transform="translate(-95, 70)">
|
||
<line x1="0" y1="0" x2="75" y2="-56" stroke="#CBD5E1" stroke-width="1.2"/>
|
||
<circle cx="0" cy="0" r="16" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1"/>
|
||
<circle cx="0" cy="0" r="6" fill="#7C3AED"/>
|
||
</g>
|
||
|
||
<g transform="translate(95, 70)">
|
||
<line x1="0" y1="0" x2="-75" y2="-56" stroke="#CBD5E1" stroke-width="1.2"/>
|
||
<circle cx="0" cy="0" r="16" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1"/>
|
||
<circle cx="0" cy="0" r="6" fill="#2563EB"/>
|
||
</g>
|
||
|
||
<!-- 高并发吞吐流动波峰曲线 (海纳百川江海意象) -->
|
||
<path d="M -140 -40 Q 0 -90 140 -40" fill="none" stroke="url(#cyanGrad)" stroke-width="2.5" stroke-linecap="round"/>
|
||
</g>
|
||
</svg>'''
|
||
|
||
# 9. 案例:知名连锁餐饮《双态对称 · 永续无阻》
|
||
def build_case_catering():
|
||
return f'''<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<defs>
|
||
{COMMON_DEFS}
|
||
</defs>
|
||
|
||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||
|
||
{make_seal(554, 20, "敏")}
|
||
|
||
<g transform="translate(300, 190)">
|
||
<!-- 双环共振轨道 (门店前台与后厨 KDS 联动) -->
|
||
<ellipse cx="-85" cy="0" rx="85" ry="75" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||
<ellipse cx="85" cy="0" rx="85" ry="75" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||
|
||
<!-- 左核:本地离线持久化节点 -->
|
||
<g transform="translate(-85, 0)" filter="url(#cardShadow)">
|
||
<circle cx="0" cy="0" r="40" fill="url(#blueGrad)"/>
|
||
<circle cx="0" cy="0" r="18" fill="#FFFFFF"/>
|
||
<circle cx="0" cy="0" r="8" fill="#1D4ED8"/>
|
||
</g>
|
||
|
||
<!-- 右核:云端实时同步与对账中枢 -->
|
||
<g transform="translate(85, 0)" filter="url(#cardShadow)">
|
||
<circle cx="0" cy="0" r="40" fill="url(#cyanGrad)"/>
|
||
<circle cx="0" cy="0" r="18" fill="#FFFFFF"/>
|
||
<circle cx="0" cy="0" r="8" fill="#0891B2"/>
|
||
</g>
|
||
|
||
<!-- 双向莫比乌斯回环流动 (网络中断无缝记账,恢复自动双向对齐) -->
|
||
<path d="M -48 -16 C -18 -40 18 -40 48 -16" fill="none" stroke="url(#blueGrad)" stroke-width="2.8" stroke-linecap="round"/>
|
||
<path d="M 48 16 C 18 40 -18 40 -48 16" fill="none" stroke="url(#cyanGrad)" stroke-width="2.8" stroke-linecap="round"/>
|
||
|
||
<circle cx="0" cy="-32" r="5" fill="#2563EB" filter="url(#softGlow)"/>
|
||
<circle cx="0" cy="32" r="5" fill="#06B6D4" filter="url(#softGlow)"/>
|
||
|
||
<circle cx="-170" cy="-35" r="4" fill="#CBD5E1"/>
|
||
<circle cx="-170" cy="35" r="4" fill="#CBD5E1"/>
|
||
<circle cx="170" cy="-35" r="4" fill="#CBD5E1"/>
|
||
<circle cx="170" cy="35" r="4" fill="#CBD5E1"/>
|
||
</g>
|
||
</svg>'''
|
||
|
||
# 10. 案例:高端装备制造《分形树状晶体 · 精密咬合》
|
||
def build_case_manufacture():
|
||
return f'''<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<defs>
|
||
{COMMON_DEFS}
|
||
</defs>
|
||
|
||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||
|
||
{make_seal(554, 20, "精")}
|
||
|
||
<g transform="translate(300, 190)">
|
||
<!-- 精密工程同心圆与刻度盘 -->
|
||
<circle cx="0" cy="0" r="140" fill="none" stroke="#E2E8F0" stroke-width="1" stroke-dasharray="6,4"/>
|
||
<circle cx="0" cy="0" r="110" fill="none" stroke="#CBD5E1" stroke-width="1.2"/>
|
||
<circle cx="0" cy="0" r="75" fill="#EFF6FF" opacity="0.7"/>
|
||
|
||
<!-- 直交工程测量基准线 -->
|
||
<line x1="-130" y1="0" x2="130" y2="0" stroke="#CBD5E1" stroke-width="0.8"/>
|
||
<line x1="0" y1="-130" x2="0" y2="130" stroke="#CBD5E1" stroke-width="0.8"/>
|
||
<line x1="-95" y1="-95" x2="95" y2="95" stroke="#E2E8F0" stroke-width="0.8" stroke-dasharray="3,3"/>
|
||
<line x1="-95" y1="95" x2="95" y2="-95" stroke="#E2E8F0" stroke-width="0.8" stroke-dasharray="3,3"/>
|
||
|
||
<!-- 核心多级 BOM 装配与物料追溯中枢 -->
|
||
<g filter="url(#cardShadow)">
|
||
<polygon points="0,-44 42,-16 42,28 0,55 -42,28 -42,-16" fill="url(#glassGrad)" stroke="#2563EB" stroke-width="1.5"/>
|
||
<circle cx="0" cy="6" r="24" fill="url(#blueGrad)"/>
|
||
<circle cx="0" cy="6" r="11" fill="#FFFFFF"/>
|
||
<circle cx="0" cy="6" r="4.5" fill="#1D4ED8"/>
|
||
</g>
|
||
|
||
<!-- 四方咬合与溯源特征节点 -->
|
||
<circle cx="0" cy="-110" r="5.5" fill="#2563EB"/>
|
||
<circle cx="110" cy="0" r="5.5" fill="#06B6D4"/>
|
||
<circle cx="0" cy="110" r="5.5" fill="#7C3AED"/>
|
||
<circle cx="-110" cy="0" r="5.5" fill="#2563EB"/>
|
||
</g>
|
||
</svg>'''
|
||
|
||
# 11. 案例:政务智能体《密闭结界 · 智慧光芒》
|
||
def build_case_gov_agent():
|
||
return f'''<svg width="600" height="380" viewBox="0 0 600 380" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||
<defs>
|
||
{COMMON_DEFS}
|
||
</defs>
|
||
|
||
<rect width="600" height="380" rx="8" fill="url(#bgGrad)"/>
|
||
<rect width="600" height="380" rx="8" fill="url(#lattice)" opacity="0.65"/>
|
||
<rect x="1" y="1" width="598" height="378" rx="7" fill="none" stroke="#E2E8F0" stroke-width="1.5"/>
|
||
|
||
{make_seal(554, 20, "安")}
|
||
|
||
<g transform="translate(300, 190)">
|
||
<!-- 正八边形内网物理隔离边界 (零公网外泄) -->
|
||
<polygon points="0,-125 110,-65 110,65 0,125 -110,65 -110,-65" fill="none" stroke="#E2E8F0" stroke-width="1.5" stroke-dasharray="5,4"/>
|
||
<polygon points="0,-100 88,-50 88,50 0,100 -88,50 -88,-50" fill="url(#glassGrad)" stroke="#CBD5E1" stroke-width="1.5" opacity="0.75"/>
|
||
|
||
<!-- 政策规章 RAG 知识库检索光芒同心环 -->
|
||
<circle cx="0" cy="0" r="68" fill="#FAF5FF" opacity="0.85"/>
|
||
<circle cx="0" cy="0" r="54" fill="none" stroke="#7C3AED" stroke-width="1.2" stroke-dasharray="4,4"/>
|
||
|
||
<!-- 人机协同核心初审自动化决策中枢 -->
|
||
<g filter="url(#cardShadow)">
|
||
<circle cx="0" cy="0" r="35" fill="url(#purpleGrad)"/>
|
||
<circle cx="0" cy="0" r="22" fill="url(#blueGrad)"/>
|
||
<circle cx="0" cy="0" r="10" fill="#FFFFFF"/>
|
||
</g>
|
||
|
||
<!-- 规章依据定位与防伪节点 -->
|
||
<circle cx="0" cy="-100" r="5" fill="#2563EB"/>
|
||
<circle cx="88" cy="-50" r="5" fill="#7C3AED"/>
|
||
<circle cx="88" cy="50" r="5" fill="#06B6D4"/>
|
||
<circle cx="0" cy="100" r="5" fill="#2563EB"/>
|
||
<circle cx="-88" cy="50" r="5" fill="#7C3AED"/>
|
||
<circle cx="-88" cy="-50" r="5" fill="#06B6D4"/>
|
||
</g>
|
||
</svg>'''
|
||
|
||
def generate_all():
|
||
showcases = {
|
||
'service_middle.svg': build_service_middle(),
|
||
'service_app.svg': build_service_app(),
|
||
'service_agent.svg': build_service_agent(),
|
||
'product_mall.svg': build_product_mall(),
|
||
'product_pos.svg': build_product_pos(),
|
||
'product_erp.svg': build_product_erp(),
|
||
'product_saas.svg': build_product_saas(),
|
||
'case_distrib.svg': build_case_distrib(),
|
||
'case_catering.svg': build_case_catering(),
|
||
'case_manufacture.svg': build_case_manufacture(),
|
||
'case_gov_agent.svg': build_case_gov_agent(),
|
||
}
|
||
|
||
for filename, content in showcases.items():
|
||
filepath = os.path.join(TARGET_DIR, filename)
|
||
with open(filepath, 'w', encoding='utf-8') as f:
|
||
f.write(content.strip())
|
||
print(f"Generated advanced abstract showcase: {filename} ({len(content)} bytes)")
|
||
|
||
if __name__ == '__main__':
|
||
generate_all()
|