{{-- ✅ Uranyen 90° Dial — astro-seek.com'un 90° dial SVG çıktısının birebir portu. Tüm geometri ChartVisualizerService::buildUranianDialLayout()'ta hesaplanır (onların 700x700 tuvali → bizim 800x800, s=398/349); bu şablon sadece hazır koordinatları basar. Katman sırası da astro-seek ile aynı: zemin → sayı bandı → gezegen altlıkları → gezegenler → dönen disk → konum noktaları → merkez gösterge → kenar çemberleri. --}} @php $L = $uranianDialLayout ?? null; @endphp @if ($L) @php $dCx = $L['cx']; $dCy = $L['cy']; $R = $L['radii']; // Midpoint Trees modu: yıldız rozeti/sektör süsleri gizlenir, merkezde // astro-seek'in AXIS paneli gösterilir (bkz. buildUranianDialLayout). $mpMode = !empty($L['midpointMode']); @endphp {{-- ✅ İLİŞKİ DIAL'I — B kişisi halkasının beyaz zemini (ana zeminden ÖNCE basılır ki dial alanı üstte kalsın; dış sınır çemberi en sonda, "Kenar çemberleri" bölümünde çizilir). --}} @if (!empty($L['pairRing'])) @endif {{-- Zemin --}} {{-- 1. Sayı bandı: tikler + 0-89 etiketleri (tıklanınca disk o değere döner) --}} @foreach ($L['scaleTicks'] as $t) @endforeach @foreach ($L['numbers'] as $n) {{ $n['text'] }} @endforeach {{-- 2a. Beyaz glif altlıkları (tik/çizgilerin üstünde temiz zemin) --}} {{-- ✅ is_extra taşıyan noktalar (asteroid/sabit yıldız katalogları) her katmanda extra-item extra-hidden + data-key ile basılır: varsayılan gizli, "Ekstra Noktalar" modalındaki checkbox'la panel.js updateExtraVisibility() gösterip gizler. --}} @foreach ($L['planets'] as $dp) @endforeach {{-- 2b. Gezegenler: renkli işaret çizgisi + (gerekirse) kesik kılavuz + glif --}} @foreach ($L['planets'] as $dp) @if (!empty($dp['marker'])) @endif {{-- ✅ B halkası çentiği: gerçek konum, halkanın iç kenarında kişi renginde tik --}} @if (!empty($dp['ringTick'])) @endif @if (!empty($dp['guide'])) @endif {{ $dp['tooltip'] }} @foreach ($dp['label'] as $seg){{ $seg['t'] }}@endforeach @if (!empty($dp['retro'])) R @endif @endforeach {{-- 3. Dönen disk (JS: uranian-dial-pointer.js sürükleyerek döndürür). data-dial-degree: dial modülü (90/60/45/30) — JS dönüş açısı ↔ dial değeri çevrimini (faktör = 360/derece) buradan türetir. --}} @if (!$mpMode) {{-- Dev soluk sektör burç glifleri (Koç/Boğa/İkizler = kardinal/sabit/değişken) — renk astro-seek mavisi yerine site temasının ana rengi (#2f8f7a). --}} @foreach ($L['disk']['sectorGlyphs'] as $sg) {{ $sg['t'] }} @endforeach {{-- 8 köşeli yıldız rozeti + 0/30/60 sektör eksenleri + 16. harmonik bağlantılar --}} @foreach ($L['disk']['sectorLines'] as $sl) @endforeach @foreach ($L['disk']['connectors'] as $cl) @endforeach @endif {{-- Gri tutma yayları + ince tik halkası + ±karşı-skala --}} @foreach ($L['disk']['rimArcs'] as $arc) @endforeach @foreach ($L['disk']['fineTicks'] as $ft) @endforeach @foreach ($L['disk']['counterLabels'] as $cl) {{ $cl['text'] }} @endforeach {{-- Artı şeklindeki eksen okları (üst uç kırmızı = okuma ekseni) --}} @foreach ($L['disk']['arrowHeads'] as $ah) @endforeach {{-- Gezegen konum noktaları (statik, diskin ÜSTÜNDE — r=258 çemberi üzerinde) --}} {{-- ✅ Ekstra noktaların konum işaretçisi de gizli başlamalı — önceki denemede bu katman atlandığı için yüzlerce nokta halka boyunca hep görünüyordu. --}} @foreach ($L['planets'] as $dp) @endforeach @if ($mpMode) {{-- 4. MIDPOINT TREES modu — eksene (kırmızı ok, mod-45 iki kol) orb içinde denk gelen tüm orta noktalar artık haritada değil, sağ paneldeki "Midpoint Ağacı" sekmesinde (bkz. panel.blade.php + uranian-dial-pointer.js) canlı listelenir. Haritada sadece çiftleri birbirine bağlayan mavi simetri çizgileri kalır. Veri (data-pairs / data-objects) görünmez bir taşıyıcı grupta gömülü; uranian-dial-pointer.js diski her döndüğünde bunu okuyup hem bu çizgileri hem de sekmedeki satırları günceller. --}} {{-- Merkez gösterge (küçük): dial modundakiyle aynı canlı AXIS değeri --}} 0°00' @else {{-- 4. Merkez gösterge (statik): ibrenin gösterdiği dial açısı --}} 0°00' @endif {{-- Kenar çemberleri (astro-seek en sonda yeniden çizer — disk üstüne net kontur) --}} @if (!empty($L['pairRing'])) {{-- ✅ Dış halkaların sınır çemberleri (B halkası + varsa transit halkası) --}} @foreach ($L['pairRing']['bounds'] ?? [$L['pairRing']['outer']] as $ringBound) @endforeach @endif {{-- ✅ İLİŞKİ DIAL'I LEJANTI: panel görünümünde CSS ile gizli (.uranian-pair-legend → display:none, bkz. panel.css); sadece büyütülmüş (Fancybox) görünümde gösterilir. Paylaşım PNG'sinde de çıkar (SVG serileştirmede harici CSS uygulanmadığı için) — orada isimlerin görünmesi zaten istenen davranış. --}} @if (!empty($L['pairLegend'])) @php $lx = (float) ($L['pairLegend']['x'] ?? 14); $legendRows = [['p' => $L['pairLegend']['a'], 'dy' => 0], ['p' => $L['pairLegend']['b'], 'dy' => 26]]; if (!empty($L['pairLegend']['c'])) { $legendRows[] = ['p' => $L['pairLegend']['c'], 'dy' => 52]; } @endphp @foreach ($legendRows as $leg) {{ $leg['p']['name'] }} @endforeach @endif @endif