Add Hanzhong rainy pass campaign chapter

This commit is contained in:
2026-06-24 12:37:06 +09:00
parent f3d23a13be
commit 630be9969c
10 changed files with 859 additions and 78 deletions

View File

@@ -0,0 +1,85 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1952 1664" role="img" aria-labelledby="title desc">
<title id="title">Hanzhong rainy pass defense map</title>
<desc id="desc">Original tactical battlefield map with rainy Hanzhong passes, commandery supply roads, Shu granary camps, Wei columns, forests, rivers, and mountain forts.</desc>
<defs>
<linearGradient id="ground" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#40564b"/>
<stop offset="0.48" stop-color="#66785b"/>
<stop offset="1" stop-color="#9c895d"/>
</linearGradient>
<linearGradient id="rainRiver" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#244e63"/>
<stop offset="0.55" stop-color="#3d7b85"/>
<stop offset="1" stop-color="#8bb8aa"/>
</linearGradient>
<filter id="grain" x="-10%" y="-10%" width="120%" height="120%">
<feTurbulence type="fractalNoise" baseFrequency="0.014" numOctaves="3" seed="61"/>
<feColorMatrix type="saturate" values="0.16"/>
<feBlend in="SourceGraphic" mode="multiply"/>
</filter>
<filter id="rainBlur" x="-4%" y="-4%" width="108%" height="108%">
<feGaussianBlur stdDeviation="1.2"/>
</filter>
</defs>
<rect width="1952" height="1664" fill="url(#ground)"/>
<g opacity="0.22" filter="url(#grain)">
<rect width="1952" height="1664" fill="#1f251f"/>
</g>
<path d="M72 118 C254 246 216 406 424 558 C606 692 560 882 790 1010 C1010 1134 982 1304 1216 1444 C1410 1562 1594 1586 1888 1608" fill="none" stroke="url(#rainRiver)" stroke-width="92" stroke-linecap="round"/>
<path d="M998 0 C942 164 1032 330 944 492 C858 650 950 824 882 990 C812 1162 860 1300 746 1518" fill="none" stroke="#2c6775" stroke-width="60" stroke-linecap="round" opacity="0.9"/>
<path d="M260 1440 C448 1276 616 1228 812 1090 C1002 956 1234 948 1418 784 C1594 626 1696 496 1900 438" fill="none" stroke="#d0b173" stroke-width="44" stroke-linecap="round"/>
<path d="M110 1330 C346 1292 526 1182 690 1042 C870 886 1082 842 1272 684 C1480 510 1642 356 1904 236" fill="none" stroke="#b6915d" stroke-width="30" stroke-linecap="round"/>
<path d="M372 1510 C540 1358 696 1290 882 1162 C1066 1036 1264 1058 1448 902 C1628 746 1708 612 1904 578" fill="none" stroke="#c49b64" stroke-width="28" stroke-linecap="round"/>
<g fill="#344433" opacity="0.9">
<path d="M0 0 L476 0 L356 206 L496 402 L250 506 L0 414 Z"/>
<path d="M634 0 L990 0 L902 246 L716 370 L580 198 Z"/>
<path d="M1130 0 L1952 0 L1952 348 L1776 294 L1554 394 L1370 222 Z"/>
<path d="M1510 584 L1952 488 L1952 1004 L1708 914 L1466 976 Z"/>
<path d="M0 580 L420 650 L256 896 L438 1128 L0 1206 Z"/>
</g>
<g fill="#23382e" opacity="0.74">
<ellipse cx="286" cy="734" rx="222" ry="150"/>
<ellipse cx="564" cy="962" rx="210" ry="132"/>
<ellipse cx="1270" cy="1186" rx="292" ry="150"/>
<ellipse cx="1558" cy="1074" rx="218" ry="118"/>
<ellipse cx="1040" cy="674" rx="222" ry="124"/>
</g>
<g fill="#7a6046" stroke="#322821" stroke-width="8">
<rect x="226" y="1324" width="240" height="138" rx="6"/>
<rect x="574" y="1140" width="260" height="150" rx="6"/>
<rect x="938" y="952" width="272" height="154" rx="6"/>
<rect x="1288" y="704" width="298" height="168" rx="6"/>
<rect x="1604" y="374" width="260" height="154" rx="6"/>
</g>
<g fill="#603f34" stroke="#281f19" stroke-width="10">
<path d="M1362 448 L1574 404 L1694 526 L1628 678 L1400 700 L1282 572 Z"/>
<path d="M900 682 L1110 642 L1236 760 L1172 910 L954 938 L830 806 Z"/>
<path d="M1516 188 L1740 160 L1880 268 L1810 410 L1588 438 L1460 316 Z"/>
<path d="M1096 1162 L1292 1132 L1420 1242 L1364 1378 L1140 1398 L1018 1284 Z"/>
</g>
<g fill="#deca92" stroke="#59442f" stroke-width="7">
<rect x="148" y="1234" width="118" height="78" rx="5"/>
<rect x="478" y="1074" width="124" height="80" rx="5"/>
<rect x="720" y="924" width="128" height="82" rx="5"/>
<rect x="1176" y="808" width="134" height="86" rx="5"/>
<rect x="1400" y="544" width="128" height="82" rx="5"/>
</g>
<g opacity="0.26" stroke="#d8e2da" stroke-width="3" stroke-linecap="round" filter="url(#rainBlur)">
<path d="M144 0 L60 180"/>
<path d="M360 0 L270 210"/>
<path d="M590 0 L496 226"/>
<path d="M820 0 L720 248"/>
<path d="M1050 0 L948 236"/>
<path d="M1280 0 L1168 258"/>
<path d="M1510 0 L1398 246"/>
<path d="M1740 0 L1620 258"/>
<path d="M1940 60 L1810 326"/>
</g>
<g fill="#efe1ab" font-family="serif" font-size="46" font-weight="700" stroke="#35261d" stroke-width="2" paint-order="stroke">
<text x="250" y="1406">촉 창고</text>
<text x="624" y="1224">무도 보급로</text>
<text x="984" y="1042">한중 북문</text>
<text x="1346" y="806">사마의 별동대</text>
<text x="1602" y="474">조진 본영</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB