Files
andrey 0a0595c3c1 Этап 47: ревизия SVG-портретов рыб — детализация до уровня болотных + биологическое правдоподобие. (1) Полная перерисовка 32 портретов, кроме 5 болотных (эталон стиля, Этап 45): 8 речных (carass, perch, bream, carp, pike, catfish, sturge, gold), 10 озёрных (zander, chuch, crayfish, bleak, roundel, eelpout, tench, navaga, rudd, cisco), 5 морских (herring, mackerel, flounder, tuna, swordfish), 9 океанских (moray, grouper, turtle, angler, octopus, manta, shark, squid, whale). (2) Единый стиль: послойные заливки без градиентов/defs (--f1 тело, --f3 плавники — перекрашиваются вариантами; --f2 брюхо/светлое, --f4 тёмный узор/кромка — НЕ перекрашиваются), спинная кромка f4-серпом, жаберная пластина+дуга, глаз 5 кругов (ободок→склера→радужка фикс-hex→зрачок→блик), составные узоры (полосы/пятна/чешуя/жучки/финлеты) — одним compound-path, ≤38 элементов, фикс-hex-акценты разрешены. (3) Видовые отличия и разведение «двойников»: карась↔карп (усы), окунь↔судак (горб/полосы/красное vs косая полоса/клыки), лещ↔густера (длинная анальная «юбка» vs короткий анальный+крупный глаз+киль), плотва↔краснопёрка (красный vs жёлтый глаз, рот конечный vs вверх), сом↔вьюн (голова-¼/длинные усы vs лента/10 усиков), мурена↔вьюн, осьминог↔кальмар (мешок+8 равных рук vs мантия-ракета+2 ловчих+крылышки), кит↔акула (флоскулы/фонтан/ус vs треуг. D/гетероцерк/5 щелей), сельдь↔скумбрия↔тунец↔меч, манта↔камбала↔рак, черепаха (вид сверху). (4) «Не рыбы»: crayfish (рак, вид сверху, клешни/ноги/веер), turtle (черепаха, вид сверху, щитки/4 ласты/клюв), octopus/squid/whale — иная анатомия (присоски/ловчие щупальца/флоскулы/фонтан), допустимые отклонения от рыбьего протокола. (5) Двойные боссы sturge (Река) и whale (Океан) проверены под золотой аурой #card.boss-card — контраст держат f4-детали. (6) Дефекты, найденные на приёмке и исправленные точечно (композиция не менялась): octopus — 2 щели с фоном; swordfish — светлый стык голова↔меч; tuna — прозрачная «дыра» в выемке хвоста-полумесяца; grouper — щель пасть↔нижняя челюсть; angler — просвет между римом и эской. (7) viewBox (0 0 160 100) и id/имена файлов не менялись; данные/логика/баланс не тронуты. (8) Интеграция: node tools/embed-fish.mjs — блок FISH-SVG обновлён (202478 байт / 1512 строк, 37 symbol); проверено совпадение всех 37 symbol с текущими assets/fish/*.svg; tools/fish-preview.html — блок «Варианты» (8 инлайн-копий carass синхронизированы с источником) + секция «Читаемость в UI» (44×28 / 40×26 / 240×150). Тесты не правились: 222/222 PASS, exit 0; check.mjs OK; balance.mjs — пины без изменений (Река 65.1/125.9 · Озёра 194.1/249.0 · Болото 240.3/328.9 · Море 297.3/476.7 · Океан 329.1/552.7). Скриншоты перегенерированы (45 RU + 45 EN). Доки: DEVLOG Этап 47.
2026-09-23 16:55:52 +03:00

35 lines
6.1 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- Морская черепаха (turtle): РАКУРС ВИД СВЕРХУ/ПОЛУ-ДОРСАЛЬ — только так читаются 4 ласты-весла и роговые щитки панциря. Карапакс-овал с f2-римом по кромке; 5 вертебральных щитков по оси (x=54..110) и 6 костальных (по 3 на сторону, сверху y≈36 и снизу y≈64) даны compound-path тёмных f4-контуров поверх f1, в центре каждого — бледный f2-блик; голова f1 с f2-пятном шеи и f4-клювом-клином, глаза по бокам (вид сверху); 4 f3-ласты с «локтем» (передние длинные, задние короткие) и f3-хвостик; главные видовые знаки — щитки панциря и 4 ласты (НЕ рыбьи плавники) -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 100" width="160" height="100">
<!-- передние ласты-вёсла f3: корень у панциря → заметный «локоть» (~132,30) → широкий кончик с округлым краем; верхняя и нижняя зеркальны -->
<path fill="var(--f3,hsl(145,34%,30%))" d="M109 36 C117 33 124 30.5 129.5 27.5 C136 23.5 143 19.5 149.5 16.5 C151.5 18.5 151 22 148 24.5 C142 28.5 134 32.5 127 36 C121 39 115 41.5 109 43 Z M109 64 C117 67 124 69.5 129.5 72.5 C136 76.5 143 80.5 149.5 83.5 C151.5 81.5 151 78 148 75.5 C142 71.5 134 67.5 127 64 C121 61 115 58.5 109 57 Z"/>
<!-- задние ласты-вёсла f3: короткие, широкие у округлого кончика (лопатка, не шип) -->
<path fill="var(--f3,hsl(145,34%,30%))" d="M46 40.5 C38 37.5 29 33.8 22 31.3 C18.5 30 15.5 31.3 15.2 33.8 C15 36.3 17.5 38 21.5 38.6 C29.5 39.7 38.5 42.9 46 45.2 Z M46 59.5 C38 62.5 29 66.2 22 68.7 C18.5 70 15.5 68.7 15.2 66.2 C15 63.7 17.5 62 21.5 61.4 C29.5 60.3 38.5 57.1 46 54.8 Z"/>
<!-- хвостик f3: короткий, сужается назад -->
<path fill="var(--f3,hsl(145,34%,30%))" d="M35 46.6 C28 46.6 22 47.4 16 50 C22 52.6 28 53.4 35 53.4 Z"/>
<!-- карапакс: овальный панцирь f2 с чуть сужённым передом (перед — вправо, к голове) -->
<path fill="var(--f2,hsl(90,20%,70%))" d="M30 50 C30 35 52 23 74 23 C99 23 117.5 36 119 50 C117.5 64 99 77 74 77 C52 77 30 65 30 50 Z"/>
<!-- кромочный f4-контур карапакса -->
<path fill="none" stroke="var(--f4,hsl(140,42%,20%))" stroke-width="1" opacity="0.75" d="M30 50 C30 35 52 23 74 23 C99 23 117.5 36 119 50 C117.5 64 99 77 74 77 C52 77 30 65 30 50 Z"/>
<!-- тело карапакса f1 (вложено в f2-рим) -->
<path fill="var(--f1,hsl(140,36%,42%))" d="M32 50 C32 36 53 25 74 25 C98 25 115.5 37 117 50 C115.5 63 98 75 74 75 C53 75 32 64 32 50 Z"/>
<!-- 5 вертебральных щитков по оси: compound-path f4-контуров (шестиугольники 13×15, x=54,68,82,96,110) -->
<path fill="none" stroke="var(--f4,hsl(140,42%,20%))" stroke-width="1.2" opacity="0.85" d="M47.5 50 L50.75 42.5 L57.25 42.5 L60.5 50 L57.25 57.5 L50.75 57.5 Z M61.5 50 L64.75 42.5 L71.25 42.5 L74.5 50 L71.25 57.5 L64.75 57.5 Z M75.5 50 L78.75 42.5 L85.25 42.5 L88.5 50 L85.25 57.5 L78.75 57.5 Z M89.5 50 L92.75 42.5 L99.25 42.5 L102.5 50 L99.25 57.5 L92.75 57.5 Z M103.5 50 L106.75 42.5 L113.25 42.5 L116.5 50 L113.25 57.5 L106.75 57.5 Z"/>
<!-- 6 костальных щитков (по 3 на сторону): compound-path f4-контуров -->
<path fill="none" stroke="var(--f4,hsl(140,42%,20%))" stroke-width="1.2" opacity="0.85" d="M47 36.5 L52 30.5 L62 30.5 L67 36.5 L62 42.5 L52 42.5 Z M70 36.5 L75 30.5 L85 30.5 L90 36.5 L85 42.5 L75 42.5 Z M93 38 L96.5 33.5 L103.5 33.5 L107 38 L103.5 42.5 L96.5 42.5 Z M47 63.5 L52 69.5 L62 69.5 L67 63.5 L62 57.5 L52 57.5 Z M70 63.5 L75 69.5 L85 69.5 L90 63.5 L85 57.5 L75 57.5 Z M93 62 L96.5 66.5 L103.5 66.5 L107 62 L103.5 57.5 L96.5 57.5 Z"/>
<!-- бледные f2-блики в центре щитков: compound-path ромбиков -->
<path fill="var(--f2,hsl(90,20%,70%))" opacity="0.6" d="M54 46 L57.5 50 L54 54 L50.5 50 Z M68 46 L71.5 50 L68 54 L64.5 50 Z M82 46 L85.5 50 L82 54 L78.5 50 Z M96 46 L99.5 50 L96 54 L92.5 50 Z M110 46 L113.5 50 L110 54 L106.5 50 Z M57 32.5 L61.5 36.5 L57 40.5 L52.5 36.5 Z M80 32.5 L84.5 36.5 L80 40.5 L75.5 36.5 Z M100 34 L104.5 38 L100 42 L95.5 38 Z M57 59.5 L61.5 63.5 L57 67.5 L52.5 63.5 Z M80 59.5 L84.5 63.5 L80 67.5 L75.5 63.5 Z M100 58 L104.5 62 L100 66 L95.5 62 Z"/>
<!-- маргинальные щитки: короткие f4-засечки по задней кромке, compound-path -->
<path fill="none" stroke="var(--f4,hsl(140,42%,20%))" stroke-width="1.1" opacity="0.7" d="M35.5 36.5 L38.8 38.1 M31 43.2 L34.6 43.9 M30 50 L33.6 50 M31 56.8 L34.6 56.1 M35.5 63.5 L38.8 61.9"/>
<!-- шея: светлое f2-пятно между панцирем и головой -->
<path fill="var(--f2,hsl(90,20%,70%))" d="M106 45 C112 44 118 46 121 50 C118 54 112 56 106 55 Z"/>
<!-- голова f1, вытянута вправо -->
<path fill="var(--f1,hsl(140,36%,42%))" d="M116 50 C116 43.5 121 40 130 40 C139.5 40 145.5 44 148 50 C145.5 56 139.5 60 130 60 C121 60 116 56.5 116 50 Z"/>
<!-- клюв f4: тёмный клин -->
<path fill="var(--f4,hsl(140,42%,20%))" d="M146 46 L150 50 L146 54 Z"/>
<!-- глаза (2, вид сверху — по бокам головы): f4-кольцо → склера → зрачок → блик -->
<path fill="var(--f4,hsl(140,42%,20%))" d="M125.2 43 a2.8 2.8 0 1 0 5.6 0 a2.8 2.8 0 1 0 -5.6 0 M125.2 57 a2.8 2.8 0 1 0 5.6 0 a2.8 2.8 0 1 0 -5.6 0"/>
<path fill="#f4f1e6" d="M126 43 a2 2 0 1 0 4 0 a2 2 0 1 0 -4 0 M126 57 a2 2 0 1 0 4 0 a2 2 0 1 0 -4 0"/>
<path fill="#142638" d="M126.7 43 a1.3 1.3 0 1 0 2.6 0 a1.3 1.3 0 1 0 -2.6 0 M126.7 57 a1.3 1.3 0 1 0 2.6 0 a1.3 1.3 0 1 0 -2.6 0"/>
<path fill="#fff" d="M127.6 42.6 a0.4 0.4 0 1 0 0.8 0 a0.4 0.4 0 1 0 -0.8 0 M127.6 57.4 a0.4 0.4 0 1 0 0.8 0 a0.4 0.4 0 1 0 -0.8 0"/>
</svg>