项目 8 智慧校园管理平台:5 个任务的示例、自绘素材、WisdomCampus 数据库
- 示例 p8-t1…t5(代码逐个累加):主界面、校园环境界面、环境采集与分析(路灯手动 / 自动控制、 LED 推送、自动推送火情、7 天温度图表)、校园安防(入侵提示、摄像机方向、拍照入库)、历史图片 (按日期查询、左右切换),各有评分规则 - 按书补全参考工程里空着的"推送LED信息""自动控制",给"自动推送火情"绑定 CheckedChanged (书上第 23 步写成了 ch_autoLamp);任务 5 每次查询前清空 Keys - 素材:项目 8 的 20 多张图片全部自绘,名字和尺寸与教材一致(project8.py 生成 SVG, build-gallery.sh 渲染成 PNG;源文件移到 svg/) - 数据库 WisdomCampus 按教材的表结构建(EnvironmentData、SecurityData、Users),预置 7 天环境数据 - 测试:参考答案全部通过;没绑定"自动推送火情"、开灯换错背景图片时报出对应原因 - 文档:教材 8 个项目全部有示例,共 23 个 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No files matched your search
@@ -1,7 +1,7 @@
|
||||
# 项目资源素材库
|
||||
|
||||
学生在"项目资源"里添加的图片和声音(`Properties.Resources.xxx`),名字和教材一致,全部由平台自绘或合成(不使用教材配套资料里的素材)。
|
||||
学生在"项目资源"里添加的图片和声音(`Properties.Resources.xxx`),名字和尺寸与教材一致,全部由平台自绘或合成(不使用教材配套资料里的素材)。
|
||||
|
||||
- `gallery/`:发布给运行器和网页的文件,`index.json` 是清单(名字、文件、中文说明、类型)。
|
||||
- `*.svg`:图片的源文件,改了以后用 `rsvg-convert xxx.svg -o gallery/xxx.png` 重新生成。
|
||||
- `svg/`:图片的源文件;`project8.py` 生成项目 8 的那些 SVG。改了以后运行 `python3 project8.py && sh build-gallery.sh` 重新生成 PNG(需要 rsvg-convert 和思源黑体)。
|
||||
- `gallery/ring.mp3`:用 ffmpeg 合成的门铃声(叮—咚),命令见提交记录。
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
# 把 svg/ 下的素材渲染成 gallery/ 下的 PNG(尺寸取 SVG 自己的 width / height)。需要 rsvg-convert 和思源黑体等中文字体。
|
||||
cd "$(dirname "$0")"
|
||||
for f in svg/*.svg; do
|
||||
rsvg-convert "$f" -o "gallery/$(basename "$f" .svg).png"
|
||||
done
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
@@ -1,5 +1,27 @@
|
||||
[
|
||||
{ "name": "switch_on", "file": "switch_on.png", "label": "开关:开", "kind": "image" },
|
||||
{ "name": "switch_off", "file": "switch_off.png", "label": "开关:关", "kind": "image" },
|
||||
{ "name": "ring", "file": "ring.mp3", "label": "铃声", "kind": "audio" }
|
||||
{ "name": "ring", "file": "ring.mp3", "label": "铃声", "kind": "audio" },
|
||||
{ "name": "ico_title", "file": "ico_title.png", "label": "标题:智慧校园", "kind": "image" },
|
||||
{ "name": "bg_home", "file": "bg_home.png", "label": "主界面背景:校园", "kind": "image" },
|
||||
{ "name": "icon_02", "file": "icon_02.png", "label": "图标:校园环境", "kind": "image" },
|
||||
{ "name": "icon_03", "file": "icon_03.png", "label": "图标:校园安防", "kind": "image" },
|
||||
{ "name": "icon_04", "file": "icon_04.png", "label": "图标:退出", "kind": "image" },
|
||||
{ "name": "day_01", "file": "day_01.png", "label": "路灯场景:亮灯", "kind": "image" },
|
||||
{ "name": "day_02", "file": "day_02.png", "label": "路灯场景:灭灯", "kind": "image" },
|
||||
{ "name": "bg_from1", "file": "bg_from1.png", "label": "面板背景(宽)", "kind": "image" },
|
||||
{ "name": "bg_from2", "file": "bg_from2.png", "label": "面板背景(窄)", "kind": "image" },
|
||||
{ "name": "icon_monitor", "file": "icon_monitor.png", "label": "监控:无画面", "kind": "image" },
|
||||
{ "name": "panel_video_ctrl", "file": "panel_video_ctrl.png", "label": "监控:方向盘底座", "kind": "image" },
|
||||
{ "name": "btn_arrow_up_normal", "file": "btn_arrow_up_normal.png", "label": "方向键:上", "kind": "image" },
|
||||
{ "name": "btn_arrow_up_press", "file": "btn_arrow_up_press.png", "label": "方向键:上(按下)", "kind": "image" },
|
||||
{ "name": "btn_arrow_down_normal", "file": "btn_arrow_down_normal.png", "label": "方向键:下", "kind": "image" },
|
||||
{ "name": "btn_arrow_down_press", "file": "btn_arrow_down_press.png", "label": "方向键:下(按下)", "kind": "image" },
|
||||
{ "name": "btn_arrow_left_normal", "file": "btn_arrow_left_normal.png", "label": "方向键:左", "kind": "image" },
|
||||
{ "name": "btn_arrow_left_press", "file": "btn_arrow_left_press.png", "label": "方向键:左(按下)", "kind": "image" },
|
||||
{ "name": "btn_arrow_right_normal", "file": "btn_arrow_right_normal.png", "label": "方向键:右", "kind": "image" },
|
||||
{ "name": "btn_arrow_right_press", "file": "btn_arrow_right_press.png", "label": "方向键:右(按下)", "kind": "image" },
|
||||
{ "name": "arrow_left_normal", "file": "arrow_left_normal.png", "label": "翻页:上一张", "kind": "image" },
|
||||
{ "name": "arrow_right_normal", "file": "arrow_right_normal.png", "label": "翻页:下一张", "kind": "image" },
|
||||
{ "name": "windowstate_closed_hover", "file": "windowstate_closed_hover.png", "label": "关闭按钮", "kind": "image" }
|
||||
]
|
||||
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 612 B |
@@ -0,0 +1,170 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
生成教材项目 8(智慧校园管理平台)用到的素材 SVG:名字和尺寸与教材配套资源一致,内容全部自绘(扁平插画)。
|
||||
运行后用 build-gallery.sh 渲染成 PNG:python3 project8.py && sh build-gallery.sh
|
||||
"""
|
||||
from pathlib import Path
|
||||
|
||||
OUT = Path(__file__).parent / "svg"
|
||||
OUT.mkdir(exist_ok=True)
|
||||
FONT = "Source Han Sans CN, Noto Sans CJK SC, sans-serif"
|
||||
|
||||
|
||||
def save(name, width, height, body):
|
||||
(OUT / f"{name}.svg").write_text(
|
||||
f'<svg xmlns="http://www.w3.org/2000/svg" width="{width}" height="{height}" viewBox="0 0 {width} {height}">\n{body}\n</svg>\n',
|
||||
encoding="utf-8",
|
||||
)
|
||||
|
||||
|
||||
# ---------- 标题图:智慧校园 ----------
|
||||
save("ico_title", 226, 54, f"""
|
||||
<g transform="translate(8,7)">
|
||||
<circle cx="20" cy="20" r="19" fill="#ffffff" opacity="0.95"/>
|
||||
<path d="M7 27 L20 10 L33 27 Z" fill="#3593ed"/>
|
||||
<rect x="13" y="22" width="14" height="9" fill="#3593ed"/>
|
||||
<rect x="18" y="25" width="4" height="6" fill="#ffffff"/>
|
||||
</g>
|
||||
<text x="56" y="37" font-family="{FONT}" font-size="27" font-weight="bold" fill="#ffffff" letter-spacing="3">智慧校园</text>
|
||||
""")
|
||||
|
||||
# ---------- 校园建筑:主界面背景、路灯场景共用的元素 ----------
|
||||
def building(x, y, w, h, color, window="#cfe3f5", rows=4, cols=6, roof="#b36b45"):
|
||||
parts = [f'<rect x="{x}" y="{y}" width="{w}" height="{h}" fill="{color}"/>',
|
||||
f'<rect x="{x-8}" y="{y-14}" width="{w+16}" height="16" fill="{roof}"/>']
|
||||
gap_x = w / cols
|
||||
gap_y = (h - 30) / rows
|
||||
for r in range(rows):
|
||||
for c in range(cols):
|
||||
parts.append(f'<rect x="{x + c*gap_x + gap_x*0.22:.1f}" y="{y + 18 + r*gap_y:.1f}" width="{gap_x*0.56:.1f}" height="{gap_y*0.55:.1f}" fill="{window}"/>')
|
||||
return "\n".join(parts)
|
||||
|
||||
|
||||
def tree(x, y, s=1.0, color="#4f9a45"):
|
||||
return (f'<rect x="{x-6*s}" y="{y}" width="{12*s}" height="{60*s}" fill="#7a5230"/>'
|
||||
f'<circle cx="{x}" cy="{y-30*s}" r="{48*s}" fill="{color}"/><circle cx="{x-32*s}" cy="{y-5*s}" r="{34*s}" fill="{color}"/>'
|
||||
f'<circle cx="{x+32*s}" cy="{y-5*s}" r="{34*s}" fill="#468c3e"/>')
|
||||
|
||||
|
||||
save("bg_home", 1440, 748, f"""
|
||||
<defs>
|
||||
<linearGradient id="sky" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#5aa7ea"/><stop offset="1" stop-color="#cfe8fb"/></linearGradient>
|
||||
<linearGradient id="lawn" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#8cc66d"/><stop offset="1" stop-color="#5f9e45"/></linearGradient>
|
||||
</defs>
|
||||
<rect width="1440" height="748" fill="url(#sky)"/>
|
||||
<circle cx="1260" cy="120" r="60" fill="#fff3b0" opacity="0.9"/>
|
||||
<g fill="#ffffff" opacity="0.85">
|
||||
<ellipse cx="260" cy="120" rx="90" ry="30"/><ellipse cx="320" cy="105" rx="60" ry="28"/>
|
||||
<ellipse cx="880" cy="90" rx="110" ry="32"/><ellipse cx="950" cy="80" rx="70" ry="28"/>
|
||||
</g>
|
||||
<g opacity="0.55" fill="#9fb8cf">
|
||||
<rect x="40" y="300" width="160" height="260"/><rect x="1230" y="280" width="180" height="280"/><rect x="230" y="340" width="120" height="220"/>
|
||||
</g>
|
||||
{building(380, 260, 680, 300, "#f2e3c9")}
|
||||
<rect x="660" y="190" width="120" height="70" fill="#f2e3c9"/><rect x="650" y="178" width="140" height="16" fill="#b36b45"/>
|
||||
<circle cx="720" cy="225" r="20" fill="#ffffff" stroke="#8a6a4a" stroke-width="4"/>
|
||||
<rect x="680" y="470" width="80" height="90" fill="#8a6a4a"/>
|
||||
{building(1080, 360, 220, 200, "#e8d6bd", rows=3, cols=4)}
|
||||
{building(150, 380, 210, 180, "#e8d6bd", rows=3, cols=4)}
|
||||
<rect x="0" y="560" width="1440" height="188" fill="url(#lawn)"/>
|
||||
<path d="M560 748 L680 560 L760 560 L880 748 Z" fill="#d9c9a8"/>
|
||||
{tree(120, 600, 1.1)}{tree(330, 620, 0.9)}{tree(1130, 610, 1.0)}{tree(1350, 600, 1.2)}
|
||||
<g fill="#3f8a3a"><ellipse cx="480" cy="572" rx="90" ry="22"/><ellipse cx="960" cy="572" rx="90" ry="22"/></g>
|
||||
""")
|
||||
|
||||
|
||||
def street(lit):
|
||||
sky = ('<stop offset="0" stop-color="#2b3d66"/><stop offset="1" stop-color="#e8a76b"/>' if lit
|
||||
else '<stop offset="0" stop-color="#6bb0ea"/><stop offset="1" stop-color="#d6ecfb"/>')
|
||||
window = "#ffd37a" if lit else "#cfe3f5"
|
||||
lamps = []
|
||||
for x in (180, 520, 860, 1200):
|
||||
lamps.append(f'<rect x="{x}" y="380" width="12" height="260" fill="#4b5563"/>'
|
||||
f'<path d="M{x+6} 386 Q{x+6} 356 {x+46} 356 H{x+70}" stroke="#4b5563" stroke-width="10" fill="none"/>'
|
||||
f'<rect x="{x+56}" y="348" width="44" height="16" rx="5" fill="#374151"/>')
|
||||
if lit:
|
||||
lamps.append(f'<path d="M{x+60} 364 L{x+20} 640 H{x+140} L{x+96} 364 Z" fill="#fff3b0" opacity="0.35"/>'
|
||||
f'<ellipse cx="{x+78}" cy="366" rx="22" ry="7" fill="#fff8d0"/>')
|
||||
else:
|
||||
lamps.append(f'<ellipse cx="{x+78}" cy="366" rx="18" ry="5" fill="#9ca3af"/>')
|
||||
return f"""
|
||||
<defs><linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">{sky}</linearGradient></defs>
|
||||
<rect width="1440" height="716" fill="url(#sky)"/>
|
||||
{'<circle cx="1180" cy="110" r="36" fill="#fff6c8"/>' if lit else '<circle cx="1220" cy="110" r="50" fill="#fff3b0" opacity="0.9"/>'}
|
||||
{building(80, 220, 560, 330, "#e9d8bf", window=window, rows=5, cols=7)}
|
||||
{building(760, 260, 580, 290, "#dcc7a8", window=window, rows=4, cols=7)}
|
||||
<rect x="0" y="550" width="1440" height="40" fill="#7fb06a"/>
|
||||
<rect x="0" y="590" width="1440" height="126" fill="#5b6472"/>
|
||||
<g fill="#f8fafc">{''.join(f'<rect x="{x}" y="648" width="70" height="8"/>' for x in range(30, 1440, 140))}</g>
|
||||
{''.join(lamps)}
|
||||
{tree(700, 560, 0.8, "#3f7f45")}{tree(1390, 560, 0.9, "#3f7f45")}
|
||||
"""
|
||||
|
||||
|
||||
save("day_01", 1440, 716, street(lit=True))
|
||||
save("day_02", 1440, 716, street(lit=False))
|
||||
|
||||
# ---------- 主界面的三个功能图标 ----------
|
||||
def tile(name, color, icon, label):
|
||||
save(name, 180, 210, f"""
|
||||
<rect x="6" y="6" width="168" height="198" rx="18" fill="{color}"/>
|
||||
<rect x="6" y="6" width="168" height="198" rx="18" fill="#ffffff" opacity="0.08"/>
|
||||
<g transform="translate(90,82)" fill="#ffffff" stroke="#ffffff">{icon}</g>
|
||||
<text x="90" y="178" font-family="{FONT}" font-size="24" font-weight="bold" fill="#ffffff" text-anchor="middle">{label}</text>
|
||||
""")
|
||||
|
||||
|
||||
tile("icon_02", "#2e9e5b", """
|
||||
<rect x="-6" y="10" width="12" height="40" stroke="none"/>
|
||||
<circle cx="0" cy="-12" r="34" stroke="none"/><circle cx="-26" cy="8" r="22" stroke="none"/><circle cx="26" cy="8" r="22" stroke="none"/>
|
||||
<path d="M-4 -2 L0 -30 L4 -2" fill="#2e9e5b" stroke="none"/>""", "校园环境")
|
||||
tile("icon_03", "#2f7fe0", """
|
||||
<path d="M0 -48 L40 -32 V2 C40 28 20 44 0 52 C-20 44 -40 28 -40 2 V-32 Z" stroke="none"/>
|
||||
<path d="M-16 0 L-4 12 L18 -14" fill="none" stroke="#2f7fe0" stroke-width="9" stroke-linecap="round" stroke-linejoin="round"/>""", "校园安防")
|
||||
tile("icon_04", "#e2803a", """
|
||||
<path d="M-10 -44 H-40 V44 H-10" fill="none" stroke-width="10" stroke-linejoin="round"/>
|
||||
<path d="M-12 0 H40 M22 -18 L40 0 L22 18" fill="none" stroke-width="10" stroke-linecap="round" stroke-linejoin="round"/>""", "退 出")
|
||||
|
||||
# ---------- 面板背景(半透明深蓝) ----------
|
||||
for name, width in (("bg_from1", 555), ("bg_from2", 425)):
|
||||
save(name, width, 670, f"""
|
||||
<rect x="8" y="8" width="{width-16}" height="654" rx="12" fill="#14304f" opacity="0.88"/>
|
||||
<rect x="8" y="8" width="{width-16}" height="654" rx="12" fill="none" stroke="#7fb3e6" stroke-width="2" opacity="0.6"/>
|
||||
<rect x="24" y="22" width="{width-48}" height="4" rx="2" fill="#4fa3ff" opacity="0.8"/>
|
||||
""")
|
||||
|
||||
# ---------- 监控:无画面时的图标、方向盘底座、方向键 ----------
|
||||
save("icon_monitor", 280, 280, """
|
||||
<g fill="none" stroke="#c9ced6" stroke-width="10" stroke-linejoin="round" stroke-linecap="round">
|
||||
<rect x="40" y="70" width="160" height="110" rx="14"/>
|
||||
<path d="M200 105 L245 80 V170 L200 145"/>
|
||||
<path d="M90 180 L80 225 M150 180 L160 225 M65 225 H175"/>
|
||||
</g>
|
||||
<circle cx="120" cy="125" r="26" fill="none" stroke="#c9ced6" stroke-width="10"/>
|
||||
""")
|
||||
|
||||
save("panel_video_ctrl", 500, 500, """
|
||||
<defs><radialGradient id="pad" cx="0.5" cy="0.45" r="0.6"><stop offset="0" stop-color="#f4f6f9"/><stop offset="1" stop-color="#c7cdd6"/></radialGradient></defs>
|
||||
<circle cx="250" cy="250" r="240" fill="url(#pad)" stroke="#aab3bf" stroke-width="6"/>
|
||||
<circle cx="250" cy="250" r="95" fill="#e9edf2" stroke="#aab3bf" stroke-width="4"/>
|
||||
<circle cx="250" cy="250" r="40" fill="#d4dae2"/>
|
||||
""")
|
||||
|
||||
ROTATE = {"up": 0, "right": 90, "down": 180, "left": 270}
|
||||
for direction, angle in ROTATE.items():
|
||||
for state, (fill, stroke) in {"normal": ("#ffffff", "#5b6472"), "press": ("#2f7fe0", "#ffffff")}.items():
|
||||
save(f"btn_arrow_{direction}_{state}", 28, 28, f"""
|
||||
<circle cx="14" cy="14" r="13" fill="{fill}" stroke="#aab3bf" stroke-width="1"/>
|
||||
<path d="M8 16.5 L14 10 L20 16.5" fill="none" stroke="{stroke}" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" transform="rotate({angle} 14 14)"/>
|
||||
""")
|
||||
|
||||
for direction, angle in (("left", 270), ("right", 90)):
|
||||
save(f"arrow_{direction}_normal", 60, 60, f"""
|
||||
<circle cx="30" cy="30" r="27" fill="#000000" opacity="0.45"/>
|
||||
<path d="M19 35 L30 23 L41 35" fill="none" stroke="#ffffff" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" transform="rotate({angle} 30 30)"/>
|
||||
""")
|
||||
|
||||
save("windowstate_closed_hover", 36, 36, """
|
||||
<rect x="2" y="2" width="32" height="32" rx="4" fill="#e81123"/>
|
||||
<path d="M12 12 L24 24 M24 12 L12 24" stroke="#ffffff" stroke-width="3" stroke-linecap="round"/>
|
||||
""")
|
||||
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60" viewBox="0 0 60 60">
|
||||
|
||||
<circle cx="30" cy="30" r="27" fill="#000000" opacity="0.45"/>
|
||||
<path d="M19 35 L30 23 L41 35" fill="none" stroke="#ffffff" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" transform="rotate(270 30 30)"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 316 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60" viewBox="0 0 60 60">
|
||||
|
||||
<circle cx="30" cy="30" r="27" fill="#000000" opacity="0.45"/>
|
||||
<path d="M19 35 L30 23 L41 35" fill="none" stroke="#ffffff" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" transform="rotate(90 30 30)"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 315 B |
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="555" height="670" viewBox="0 0 555 670">
|
||||
|
||||
<rect x="8" y="8" width="539" height="654" rx="12" fill="#14304f" opacity="0.88"/>
|
||||
<rect x="8" y="8" width="539" height="654" rx="12" fill="none" stroke="#7fb3e6" stroke-width="2" opacity="0.6"/>
|
||||
<rect x="24" y="22" width="507" height="4" rx="2" fill="#4fa3ff" opacity="0.8"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 380 B |
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="425" height="670" viewBox="0 0 425 670">
|
||||
|
||||
<rect x="8" y="8" width="409" height="654" rx="12" fill="#14304f" opacity="0.88"/>
|
||||
<rect x="8" y="8" width="409" height="654" rx="12" fill="none" stroke="#7fb3e6" stroke-width="2" opacity="0.6"/>
|
||||
<rect x="24" y="22" width="377" height="4" rx="2" fill="#4fa3ff" opacity="0.8"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 380 B |
@@ -0,0 +1,78 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1440" height="748" viewBox="0 0 1440 748">
|
||||
|
||||
<defs>
|
||||
<linearGradient id="sky" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#5aa7ea"/><stop offset="1" stop-color="#cfe8fb"/></linearGradient>
|
||||
<linearGradient id="lawn" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#8cc66d"/><stop offset="1" stop-color="#5f9e45"/></linearGradient>
|
||||
</defs>
|
||||
<rect width="1440" height="748" fill="url(#sky)"/>
|
||||
<circle cx="1260" cy="120" r="60" fill="#fff3b0" opacity="0.9"/>
|
||||
<g fill="#ffffff" opacity="0.85">
|
||||
<ellipse cx="260" cy="120" rx="90" ry="30"/><ellipse cx="320" cy="105" rx="60" ry="28"/>
|
||||
<ellipse cx="880" cy="90" rx="110" ry="32"/><ellipse cx="950" cy="80" rx="70" ry="28"/>
|
||||
</g>
|
||||
<g opacity="0.55" fill="#9fb8cf">
|
||||
<rect x="40" y="300" width="160" height="260"/><rect x="1230" y="280" width="180" height="280"/><rect x="230" y="340" width="120" height="220"/>
|
||||
</g>
|
||||
<rect x="380" y="260" width="680" height="300" fill="#f2e3c9"/>
|
||||
<rect x="372" y="246" width="696" height="16" fill="#b36b45"/>
|
||||
<rect x="404.9" y="278.0" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="518.3" y="278.0" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="631.6" y="278.0" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="744.9" y="278.0" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="858.3" y="278.0" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="971.6" y="278.0" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="404.9" y="345.5" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="518.3" y="345.5" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="631.6" y="345.5" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="744.9" y="345.5" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="858.3" y="345.5" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="971.6" y="345.5" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="404.9" y="413.0" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="518.3" y="413.0" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="631.6" y="413.0" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="744.9" y="413.0" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="858.3" y="413.0" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="971.6" y="413.0" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="404.9" y="480.5" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="518.3" y="480.5" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="631.6" y="480.5" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="744.9" y="480.5" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="858.3" y="480.5" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="971.6" y="480.5" width="63.5" height="37.1" fill="#cfe3f5"/>
|
||||
<rect x="660" y="190" width="120" height="70" fill="#f2e3c9"/><rect x="650" y="178" width="140" height="16" fill="#b36b45"/>
|
||||
<circle cx="720" cy="225" r="20" fill="#ffffff" stroke="#8a6a4a" stroke-width="4"/>
|
||||
<rect x="680" y="470" width="80" height="90" fill="#8a6a4a"/>
|
||||
<rect x="1080" y="360" width="220" height="200" fill="#e8d6bd"/>
|
||||
<rect x="1072" y="346" width="236" height="16" fill="#b36b45"/>
|
||||
<rect x="1092.1" y="378.0" width="30.8" height="31.2" fill="#cfe3f5"/>
|
||||
<rect x="1147.1" y="378.0" width="30.8" height="31.2" fill="#cfe3f5"/>
|
||||
<rect x="1202.1" y="378.0" width="30.8" height="31.2" fill="#cfe3f5"/>
|
||||
<rect x="1257.1" y="378.0" width="30.8" height="31.2" fill="#cfe3f5"/>
|
||||
<rect x="1092.1" y="434.7" width="30.8" height="31.2" fill="#cfe3f5"/>
|
||||
<rect x="1147.1" y="434.7" width="30.8" height="31.2" fill="#cfe3f5"/>
|
||||
<rect x="1202.1" y="434.7" width="30.8" height="31.2" fill="#cfe3f5"/>
|
||||
<rect x="1257.1" y="434.7" width="30.8" height="31.2" fill="#cfe3f5"/>
|
||||
<rect x="1092.1" y="491.3" width="30.8" height="31.2" fill="#cfe3f5"/>
|
||||
<rect x="1147.1" y="491.3" width="30.8" height="31.2" fill="#cfe3f5"/>
|
||||
<rect x="1202.1" y="491.3" width="30.8" height="31.2" fill="#cfe3f5"/>
|
||||
<rect x="1257.1" y="491.3" width="30.8" height="31.2" fill="#cfe3f5"/>
|
||||
<rect x="150" y="380" width="210" height="180" fill="#e8d6bd"/>
|
||||
<rect x="142" y="366" width="226" height="16" fill="#b36b45"/>
|
||||
<rect x="161.6" y="398.0" width="29.4" height="27.5" fill="#cfe3f5"/>
|
||||
<rect x="214.1" y="398.0" width="29.4" height="27.5" fill="#cfe3f5"/>
|
||||
<rect x="266.6" y="398.0" width="29.4" height="27.5" fill="#cfe3f5"/>
|
||||
<rect x="319.1" y="398.0" width="29.4" height="27.5" fill="#cfe3f5"/>
|
||||
<rect x="161.6" y="448.0" width="29.4" height="27.5" fill="#cfe3f5"/>
|
||||
<rect x="214.1" y="448.0" width="29.4" height="27.5" fill="#cfe3f5"/>
|
||||
<rect x="266.6" y="448.0" width="29.4" height="27.5" fill="#cfe3f5"/>
|
||||
<rect x="319.1" y="448.0" width="29.4" height="27.5" fill="#cfe3f5"/>
|
||||
<rect x="161.6" y="498.0" width="29.4" height="27.5" fill="#cfe3f5"/>
|
||||
<rect x="214.1" y="498.0" width="29.4" height="27.5" fill="#cfe3f5"/>
|
||||
<rect x="266.6" y="498.0" width="29.4" height="27.5" fill="#cfe3f5"/>
|
||||
<rect x="319.1" y="498.0" width="29.4" height="27.5" fill="#cfe3f5"/>
|
||||
<rect x="0" y="560" width="1440" height="188" fill="url(#lawn)"/>
|
||||
<path d="M560 748 L680 560 L760 560 L880 748 Z" fill="#d9c9a8"/>
|
||||
<rect x="113.4" y="600" width="13.200000000000001" height="66.0" fill="#7a5230"/><circle cx="120" cy="567.0" r="52.800000000000004" fill="#4f9a45"/><circle cx="84.8" cy="594.5" r="37.400000000000006" fill="#4f9a45"/><circle cx="155.2" cy="594.5" r="37.400000000000006" fill="#468c3e"/><rect x="324.6" y="620" width="10.8" height="54.0" fill="#7a5230"/><circle cx="330" cy="593.0" r="43.2" fill="#4f9a45"/><circle cx="301.2" cy="615.5" r="30.6" fill="#4f9a45"/><circle cx="358.8" cy="615.5" r="30.6" fill="#468c3e"/><rect x="1124.0" y="610" width="12.0" height="60.0" fill="#7a5230"/><circle cx="1130" cy="580.0" r="48.0" fill="#4f9a45"/><circle cx="1098.0" cy="605.0" r="34.0" fill="#4f9a45"/><circle cx="1162.0" cy="605.0" r="34.0" fill="#468c3e"/><rect x="1342.8" y="600" width="14.399999999999999" height="72.0" fill="#7a5230"/><circle cx="1350" cy="564.0" r="57.599999999999994" fill="#4f9a45"/><circle cx="1311.6" cy="594.0" r="40.8" fill="#4f9a45"/><circle cx="1388.4" cy="594.0" r="40.8" fill="#468c3e"/>
|
||||
<g fill="#3f8a3a"><ellipse cx="480" cy="572" rx="90" ry="22"/><ellipse cx="960" cy="572" rx="90" ry="22"/></g>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.1 KiB |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
|
||||
|
||||
<circle cx="14" cy="14" r="13" fill="#ffffff" stroke="#aab3bf" stroke-width="1"/>
|
||||
<path d="M8 16.5 L14 10 L20 16.5" fill="none" stroke="#5b6472" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" transform="rotate(180 14 14)"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 338 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
|
||||
|
||||
<circle cx="14" cy="14" r="13" fill="#2f7fe0" stroke="#aab3bf" stroke-width="1"/>
|
||||
<path d="M8 16.5 L14 10 L20 16.5" fill="none" stroke="#ffffff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" transform="rotate(180 14 14)"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 338 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
|
||||
|
||||
<circle cx="14" cy="14" r="13" fill="#ffffff" stroke="#aab3bf" stroke-width="1"/>
|
||||
<path d="M8 16.5 L14 10 L20 16.5" fill="none" stroke="#5b6472" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" transform="rotate(270 14 14)"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 338 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
|
||||
|
||||
<circle cx="14" cy="14" r="13" fill="#2f7fe0" stroke="#aab3bf" stroke-width="1"/>
|
||||
<path d="M8 16.5 L14 10 L20 16.5" fill="none" stroke="#ffffff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" transform="rotate(270 14 14)"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 338 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
|
||||
|
||||
<circle cx="14" cy="14" r="13" fill="#ffffff" stroke="#aab3bf" stroke-width="1"/>
|
||||
<path d="M8 16.5 L14 10 L20 16.5" fill="none" stroke="#5b6472" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" transform="rotate(90 14 14)"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 337 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
|
||||
|
||||
<circle cx="14" cy="14" r="13" fill="#2f7fe0" stroke="#aab3bf" stroke-width="1"/>
|
||||
<path d="M8 16.5 L14 10 L20 16.5" fill="none" stroke="#ffffff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" transform="rotate(90 14 14)"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 337 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
|
||||
|
||||
<circle cx="14" cy="14" r="13" fill="#ffffff" stroke="#aab3bf" stroke-width="1"/>
|
||||
<path d="M8 16.5 L14 10 L20 16.5" fill="none" stroke="#5b6472" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" transform="rotate(0 14 14)"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 336 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
|
||||
|
||||
<circle cx="14" cy="14" r="13" fill="#2f7fe0" stroke="#aab3bf" stroke-width="1"/>
|
||||
<path d="M8 16.5 L14 10 L20 16.5" fill="none" stroke="#ffffff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" transform="rotate(0 14 14)"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 336 B |
@@ -0,0 +1,79 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1440" height="716" viewBox="0 0 1440 716">
|
||||
|
||||
<defs><linearGradient id="sky" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#2b3d66"/><stop offset="1" stop-color="#e8a76b"/></linearGradient></defs>
|
||||
<rect width="1440" height="716" fill="url(#sky)"/>
|
||||
<circle cx="1180" cy="110" r="36" fill="#fff6c8"/>
|
||||
<rect x="80" y="220" width="560" height="330" fill="#e9d8bf"/>
|
||||
<rect x="72" y="206" width="576" height="16" fill="#b36b45"/>
|
||||
<rect x="97.6" y="238.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="177.6" y="238.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="257.6" y="238.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="337.6" y="238.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="417.6" y="238.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="497.6" y="238.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="577.6" y="238.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="97.6" y="298.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="177.6" y="298.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="257.6" y="298.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="337.6" y="298.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="417.6" y="298.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="497.6" y="298.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="577.6" y="298.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="97.6" y="358.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="177.6" y="358.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="257.6" y="358.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="337.6" y="358.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="417.6" y="358.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="497.6" y="358.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="577.6" y="358.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="97.6" y="418.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="177.6" y="418.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="257.6" y="418.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="337.6" y="418.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="417.6" y="418.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="497.6" y="418.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="577.6" y="418.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="97.6" y="478.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="177.6" y="478.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="257.6" y="478.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="337.6" y="478.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="417.6" y="478.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="497.6" y="478.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="577.6" y="478.0" width="44.8" height="33.0" fill="#ffd37a"/>
|
||||
<rect x="760" y="260" width="580" height="290" fill="#dcc7a8"/>
|
||||
<rect x="752" y="246" width="596" height="16" fill="#b36b45"/>
|
||||
<rect x="778.2" y="278.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="861.1" y="278.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="943.9" y="278.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="1026.8" y="278.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="1109.7" y="278.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="1192.5" y="278.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="1275.4" y="278.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="778.2" y="343.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="861.1" y="343.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="943.9" y="343.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="1026.8" y="343.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="1109.7" y="343.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="1192.5" y="343.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="1275.4" y="343.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="778.2" y="408.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="861.1" y="408.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="943.9" y="408.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="1026.8" y="408.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="1109.7" y="408.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="1192.5" y="408.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="1275.4" y="408.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="778.2" y="473.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="861.1" y="473.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="943.9" y="473.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="1026.8" y="473.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="1109.7" y="473.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="1192.5" y="473.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="1275.4" y="473.0" width="46.4" height="35.8" fill="#ffd37a"/>
|
||||
<rect x="0" y="550" width="1440" height="40" fill="#7fb06a"/>
|
||||
<rect x="0" y="590" width="1440" height="126" fill="#5b6472"/>
|
||||
<g fill="#f8fafc"><rect x="30" y="648" width="70" height="8"/><rect x="170" y="648" width="70" height="8"/><rect x="310" y="648" width="70" height="8"/><rect x="450" y="648" width="70" height="8"/><rect x="590" y="648" width="70" height="8"/><rect x="730" y="648" width="70" height="8"/><rect x="870" y="648" width="70" height="8"/><rect x="1010" y="648" width="70" height="8"/><rect x="1150" y="648" width="70" height="8"/><rect x="1290" y="648" width="70" height="8"/><rect x="1430" y="648" width="70" height="8"/></g>
|
||||
<rect x="180" y="380" width="12" height="260" fill="#4b5563"/><path d="M186 386 Q186 356 226 356 H250" stroke="#4b5563" stroke-width="10" fill="none"/><rect x="236" y="348" width="44" height="16" rx="5" fill="#374151"/><path d="M240 364 L200 640 H320 L276 364 Z" fill="#fff3b0" opacity="0.35"/><ellipse cx="258" cy="366" rx="22" ry="7" fill="#fff8d0"/><rect x="520" y="380" width="12" height="260" fill="#4b5563"/><path d="M526 386 Q526 356 566 356 H590" stroke="#4b5563" stroke-width="10" fill="none"/><rect x="576" y="348" width="44" height="16" rx="5" fill="#374151"/><path d="M580 364 L540 640 H660 L616 364 Z" fill="#fff3b0" opacity="0.35"/><ellipse cx="598" cy="366" rx="22" ry="7" fill="#fff8d0"/><rect x="860" y="380" width="12" height="260" fill="#4b5563"/><path d="M866 386 Q866 356 906 356 H930" stroke="#4b5563" stroke-width="10" fill="none"/><rect x="916" y="348" width="44" height="16" rx="5" fill="#374151"/><path d="M920 364 L880 640 H1000 L956 364 Z" fill="#fff3b0" opacity="0.35"/><ellipse cx="938" cy="366" rx="22" ry="7" fill="#fff8d0"/><rect x="1200" y="380" width="12" height="260" fill="#4b5563"/><path d="M1206 386 Q1206 356 1246 356 H1270" stroke="#4b5563" stroke-width="10" fill="none"/><rect x="1256" y="348" width="44" height="16" rx="5" fill="#374151"/><path d="M1260 364 L1220 640 H1340 L1296 364 Z" fill="#fff3b0" opacity="0.35"/><ellipse cx="1278" cy="366" rx="22" ry="7" fill="#fff8d0"/>
|
||||
<rect x="695.2" y="560" width="9.600000000000001" height="48.0" fill="#7a5230"/><circle cx="700" cy="536.0" r="38.400000000000006" fill="#3f7f45"/><circle cx="674.4" cy="556.0" r="27.200000000000003" fill="#3f7f45"/><circle cx="725.6" cy="556.0" r="27.200000000000003" fill="#468c3e"/><rect x="1384.6" y="560" width="10.8" height="54.0" fill="#7a5230"/><circle cx="1390" cy="533.0" r="43.2" fill="#3f7f45"/><circle cx="1361.2" cy="555.5" r="30.6" fill="#3f7f45"/><circle cx="1418.8" cy="555.5" r="30.6" fill="#468c3e"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.5 KiB |
@@ -0,0 +1,79 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1440" height="716" viewBox="0 0 1440 716">
|
||||
|
||||
<defs><linearGradient id="sky" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#6bb0ea"/><stop offset="1" stop-color="#d6ecfb"/></linearGradient></defs>
|
||||
<rect width="1440" height="716" fill="url(#sky)"/>
|
||||
<circle cx="1220" cy="110" r="50" fill="#fff3b0" opacity="0.9"/>
|
||||
<rect x="80" y="220" width="560" height="330" fill="#e9d8bf"/>
|
||||
<rect x="72" y="206" width="576" height="16" fill="#b36b45"/>
|
||||
<rect x="97.6" y="238.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="177.6" y="238.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="257.6" y="238.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="337.6" y="238.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="417.6" y="238.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="497.6" y="238.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="577.6" y="238.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="97.6" y="298.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="177.6" y="298.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="257.6" y="298.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="337.6" y="298.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="417.6" y="298.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="497.6" y="298.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="577.6" y="298.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="97.6" y="358.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="177.6" y="358.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="257.6" y="358.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="337.6" y="358.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="417.6" y="358.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="497.6" y="358.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="577.6" y="358.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="97.6" y="418.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="177.6" y="418.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="257.6" y="418.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="337.6" y="418.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="417.6" y="418.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="497.6" y="418.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="577.6" y="418.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="97.6" y="478.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="177.6" y="478.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="257.6" y="478.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="337.6" y="478.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="417.6" y="478.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="497.6" y="478.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="577.6" y="478.0" width="44.8" height="33.0" fill="#cfe3f5"/>
|
||||
<rect x="760" y="260" width="580" height="290" fill="#dcc7a8"/>
|
||||
<rect x="752" y="246" width="596" height="16" fill="#b36b45"/>
|
||||
<rect x="778.2" y="278.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="861.1" y="278.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="943.9" y="278.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="1026.8" y="278.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="1109.7" y="278.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="1192.5" y="278.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="1275.4" y="278.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="778.2" y="343.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="861.1" y="343.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="943.9" y="343.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="1026.8" y="343.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="1109.7" y="343.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="1192.5" y="343.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="1275.4" y="343.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="778.2" y="408.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="861.1" y="408.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="943.9" y="408.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="1026.8" y="408.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="1109.7" y="408.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="1192.5" y="408.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="1275.4" y="408.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="778.2" y="473.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="861.1" y="473.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="943.9" y="473.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="1026.8" y="473.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="1109.7" y="473.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="1192.5" y="473.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="1275.4" y="473.0" width="46.4" height="35.8" fill="#cfe3f5"/>
|
||||
<rect x="0" y="550" width="1440" height="40" fill="#7fb06a"/>
|
||||
<rect x="0" y="590" width="1440" height="126" fill="#5b6472"/>
|
||||
<g fill="#f8fafc"><rect x="30" y="648" width="70" height="8"/><rect x="170" y="648" width="70" height="8"/><rect x="310" y="648" width="70" height="8"/><rect x="450" y="648" width="70" height="8"/><rect x="590" y="648" width="70" height="8"/><rect x="730" y="648" width="70" height="8"/><rect x="870" y="648" width="70" height="8"/><rect x="1010" y="648" width="70" height="8"/><rect x="1150" y="648" width="70" height="8"/><rect x="1290" y="648" width="70" height="8"/><rect x="1430" y="648" width="70" height="8"/></g>
|
||||
<rect x="180" y="380" width="12" height="260" fill="#4b5563"/><path d="M186 386 Q186 356 226 356 H250" stroke="#4b5563" stroke-width="10" fill="none"/><rect x="236" y="348" width="44" height="16" rx="5" fill="#374151"/><ellipse cx="258" cy="366" rx="18" ry="5" fill="#9ca3af"/><rect x="520" y="380" width="12" height="260" fill="#4b5563"/><path d="M526 386 Q526 356 566 356 H590" stroke="#4b5563" stroke-width="10" fill="none"/><rect x="576" y="348" width="44" height="16" rx="5" fill="#374151"/><ellipse cx="598" cy="366" rx="18" ry="5" fill="#9ca3af"/><rect x="860" y="380" width="12" height="260" fill="#4b5563"/><path d="M866 386 Q866 356 906 356 H930" stroke="#4b5563" stroke-width="10" fill="none"/><rect x="916" y="348" width="44" height="16" rx="5" fill="#374151"/><ellipse cx="938" cy="366" rx="18" ry="5" fill="#9ca3af"/><rect x="1200" y="380" width="12" height="260" fill="#4b5563"/><path d="M1206 386 Q1206 356 1246 356 H1270" stroke="#4b5563" stroke-width="10" fill="none"/><rect x="1256" y="348" width="44" height="16" rx="5" fill="#374151"/><ellipse cx="1278" cy="366" rx="18" ry="5" fill="#9ca3af"/>
|
||||
<rect x="695.2" y="560" width="9.600000000000001" height="48.0" fill="#7a5230"/><circle cx="700" cy="536.0" r="38.400000000000006" fill="#3f7f45"/><circle cx="674.4" cy="556.0" r="27.200000000000003" fill="#3f7f45"/><circle cx="725.6" cy="556.0" r="27.200000000000003" fill="#468c3e"/><rect x="1384.6" y="560" width="10.8" height="54.0" fill="#7a5230"/><circle cx="1390" cy="533.0" r="43.2" fill="#3f7f45"/><circle cx="1361.2" cy="555.5" r="30.6" fill="#3f7f45"/><circle cx="1418.8" cy="555.5" r="30.6" fill="#468c3e"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.2 KiB |
@@ -0,0 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="226" height="54" viewBox="0 0 226 54">
|
||||
|
||||
<g transform="translate(8,7)">
|
||||
<circle cx="20" cy="20" r="19" fill="#ffffff" opacity="0.95"/>
|
||||
<path d="M7 27 L20 10 L33 27 Z" fill="#3593ed"/>
|
||||
<rect x="13" y="22" width="14" height="9" fill="#3593ed"/>
|
||||
<rect x="18" y="25" width="4" height="6" fill="#ffffff"/>
|
||||
</g>
|
||||
<text x="56" y="37" font-family="Source Han Sans CN, Noto Sans CJK SC, sans-serif" font-size="27" font-weight="bold" fill="#ffffff" letter-spacing="3">智慧校园</text>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 553 B |
@@ -0,0 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="180" height="210" viewBox="0 0 180 210">
|
||||
|
||||
<rect x="6" y="6" width="168" height="198" rx="18" fill="#2e9e5b"/>
|
||||
<rect x="6" y="6" width="168" height="198" rx="18" fill="#ffffff" opacity="0.08"/>
|
||||
<g transform="translate(90,82)" fill="#ffffff" stroke="#ffffff">
|
||||
<rect x="-6" y="10" width="12" height="40" stroke="none"/>
|
||||
<circle cx="0" cy="-12" r="34" stroke="none"/><circle cx="-26" cy="8" r="22" stroke="none"/><circle cx="26" cy="8" r="22" stroke="none"/>
|
||||
<path d="M-4 -2 L0 -30 L4 -2" fill="#2e9e5b" stroke="none"/></g>
|
||||
<text x="90" y="178" font-family="Source Han Sans CN, Noto Sans CJK SC, sans-serif" font-size="24" font-weight="bold" fill="#ffffff" text-anchor="middle">校园环境</text>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 769 B |
@@ -0,0 +1,10 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="180" height="210" viewBox="0 0 180 210">
|
||||
|
||||
<rect x="6" y="6" width="168" height="198" rx="18" fill="#2f7fe0"/>
|
||||
<rect x="6" y="6" width="168" height="198" rx="18" fill="#ffffff" opacity="0.08"/>
|
||||
<g transform="translate(90,82)" fill="#ffffff" stroke="#ffffff">
|
||||
<path d="M0 -48 L40 -32 V2 C40 28 20 44 0 52 C-20 44 -40 28 -40 2 V-32 Z" stroke="none"/>
|
||||
<path d="M-16 0 L-4 12 L18 -14" fill="none" stroke="#2f7fe0" stroke-width="9" stroke-linecap="round" stroke-linejoin="round"/></g>
|
||||
<text x="90" y="178" font-family="Source Han Sans CN, Noto Sans CJK SC, sans-serif" font-size="24" font-weight="bold" fill="#ffffff" text-anchor="middle">校园安防</text>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 724 B |
@@ -0,0 +1,10 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="180" height="210" viewBox="0 0 180 210">
|
||||
|
||||
<rect x="6" y="6" width="168" height="198" rx="18" fill="#e2803a"/>
|
||||
<rect x="6" y="6" width="168" height="198" rx="18" fill="#ffffff" opacity="0.08"/>
|
||||
<g transform="translate(90,82)" fill="#ffffff" stroke="#ffffff">
|
||||
<path d="M-10 -44 H-40 V44 H-10" fill="none" stroke-width="10" stroke-linejoin="round"/>
|
||||
<path d="M-12 0 H40 M22 -18 L40 0 L22 18" fill="none" stroke-width="10" stroke-linecap="round" stroke-linejoin="round"/></g>
|
||||
<text x="90" y="178" font-family="Source Han Sans CN, Noto Sans CJK SC, sans-serif" font-size="24" font-weight="bold" fill="#ffffff" text-anchor="middle">退 出</text>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 713 B |
@@ -0,0 +1,10 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="280" height="280" viewBox="0 0 280 280">
|
||||
|
||||
<g fill="none" stroke="#c9ced6" stroke-width="10" stroke-linejoin="round" stroke-linecap="round">
|
||||
<rect x="40" y="70" width="160" height="110" rx="14"/>
|
||||
<path d="M200 105 L245 80 V170 L200 145"/>
|
||||
<path d="M90 180 L80 225 M150 180 L160 225 M65 225 H175"/>
|
||||
</g>
|
||||
<circle cx="120" cy="125" r="26" fill="none" stroke="#c9ced6" stroke-width="10"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 457 B |
@@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="500" height="500" viewBox="0 0 500 500">
|
||||
|
||||
<defs><radialGradient id="pad" cx="0.5" cy="0.45" r="0.6"><stop offset="0" stop-color="#f4f6f9"/><stop offset="1" stop-color="#c7cdd6"/></radialGradient></defs>
|
||||
<circle cx="250" cy="250" r="240" fill="url(#pad)" stroke="#aab3bf" stroke-width="6"/>
|
||||
<circle cx="250" cy="250" r="95" fill="#e9edf2" stroke="#aab3bf" stroke-width="4"/>
|
||||
<circle cx="250" cy="250" r="40" fill="#d4dae2"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 487 B |
|
Before Width: | Height: | Size: 390 B After Width: | Height: | Size: 390 B |
|
Before Width: | Height: | Size: 389 B After Width: | Height: | Size: 389 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36">
|
||||
|
||||
<rect x="2" y="2" width="32" height="32" rx="4" fill="#e81123"/>
|
||||
<path d="M12 12 L24 24 M24 12 L12 24" stroke="#ffffff" stroke-width="3" stroke-linecap="round"/>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 259 B |