Ham HTML
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ölçek Hesaplama - Harita ve Maket Ölçeği Çevirici</title>
<meta name="description" content="Ölçek oranını (örn. 1:100) girin; model/harita üzerindeki boyuttan gerçek boyutu veya tam tersini anında hesaplayın. %100 tarayıcıda çalışır, veri gönderilmez.">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:title" content="Ölçek Hesaplama - Harita ve Maket Ölçeği Çevirici">
<meta property="og:description" content="Ölçek oranını girin; model/harita üzerindeki boyuttan gerçek boyutu veya tam tersini anında hesaplayın. %100 tarayıcıda çalışır.">
<meta name="theme-color" content="#6366f1">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebApplication",
"name": "Ölçek Hesaplama Aracı",
"description": "Harita, maket veya model ölçeği (örneğin 1:100) ile model üzerindeki boyut ve gerçek boyut arasında dönüşüm yapan ücretsiz online araç.",
"applicationCategory": "UtilitiesApplication",
"operatingSystem": "Any",
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "TRY" }
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Ölçek nedir ve nasıl okunur?",
"acceptedAnswer": { "@type": "Answer", "text": "Ölçek, bir harita, plan veya maket üzerindeki bir uzunluğun, gerçek dünyadaki karşılığına oranını gösterir ve genellikle 1:100 gibi iki sayı ile ifade edilir. İlk sayı model/harita üzerindeki birimi, ikinci sayı ise bu birimin gerçekte kaç katına denk geldiğini gösterir." }
},
{
"@type": "Question",
"name": "1:100 ölçek ne anlama gelir?",
"acceptedAnswer": { "@type": "Answer", "text": "1:100 ölçek, harita veya maket üzerindeki 1 birimlik (örneğin 1 cm) bir uzunluğun, gerçekte 100 birime (100 cm, yani 1 metreye) karşılık geldiği anlamına gelir. Bu ölçek, mimari planlarda ve maket çalışmalarında sık kullanılır." }
},
{
"@type": "Question",
"name": "Harita üzerindeki bir mesafeden gerçek mesafeyi nasıl bulurum?",
"acceptedAnswer": { "@type": "Answer", "text": "Harita üzerinde ölçtüğünüz mesafeyi, haritanın ölçek paydası ile çarparak gerçek mesafeyi bulabilirsiniz. Örneğin 1:25000 ölçekli bir haritada ölçülen 4 cm'lik bir mesafe, gerçekte 4 x 25000 = 100.000 cm, yani 1 kilometreye karşılık gelir." }
},
{
"@type": "Question",
"name": "Maket veya model yaparken ölçek hesaplama neden önemlidir?",
"acceptedAnswer": { "@type": "Answer", "text": "Doğru ölçek hesaplaması, maketin veya modelin gerçek yapıyla orantılı ve tutarlı görünmesini sağlar. Yanlış ölçeklendirme, maketin parçalarının birbiriyle veya gerçek referans noktalarıyla uyumsuz çıkmasına neden olabilir." }
}
]
}
</script>
<style>
:root {
--bg:#f5f6fb; --surface:#fff; --surface-2:#f0f2f9; --border:#e3e6f0;
--text:#1d2033; --muted:#6b7089; --primary:#6366f1; --primary-600:#4f46e5;
--primary-soft:#eef0ff; --success:#10b981; --danger:#ef4444; --warning:#f59e0b;
--radius:16px; --shadow:0 10px 30px -12px rgba(30,35,90,.18);
}
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; background: var(--bg); color: var(--text); line-height:1.55; }
.container { max-width: 720px; margin: 0 auto; padding: 24px 16px 60px; }
header.hero { text-align:center; padding: 28px 0 8px; }
header.hero h1 { font-size: clamp(1.5rem, 4vw, 2rem); margin: 0 0 8px; }
header.hero p { color: var(--muted); margin:0; font-size: 1rem; }
.trust-badge { display:inline-flex; align-items:center; gap:6px; background: var(--primary-soft); color: var(--primary-600); font-size: .8rem; font-weight:600; padding:6px 14px; border-radius:999px; margin-top:12px; }
.ad-slot { min-height: 0; }
.card { background: var(--surface); border:1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); padding: 24px; margin: 20px 0; }
.field { margin-bottom: 16px; }
.field label { display:block; font-size: .88rem; font-weight:600; margin-bottom:6px; color: var(--text); }
.field .hint { font-size:.78rem; color: var(--muted); margin-top:4px; }
.section-title { font-size: .78rem; font-weight:700; text-transform: uppercase; letter-spacing:.04em; color: var(--primary-600); margin: 4px 0 12px; }
.divider { border:none; border-top: 1px dashed var(--border); margin: 20px 0; }
input[type="text"] { width:100%; padding: 12px 14px; border: 1px solid var(--border); background: var(--surface-2); border-radius: 12px; font-size: 1rem; color: var(--text); outline:none; transition: border-color .15s, box-shadow .15s; }
input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft); }
.grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; }
.ratio-row { display:flex; align-items:center; gap: 10px; }
.ratio-row input { text-align:center; }
.ratio-colon { font-size: 1.3rem; font-weight:700; color: var(--muted); }
.btn { width:100%; padding: 14px 20px; border:none; border-radius: 12px; background: var(--primary); color:#fff; font-size: 1rem; font-weight:700; cursor:pointer; transition: background .15s, transform .05s; margin-top: 6px; }
.btn:hover { background: var(--primary-600); }
.btn:active { transform: scale(.99); }
.warning { display:none; background: #fff4e5; border: 1px solid var(--warning); color:#8a5a00; padding: 12px 14px; border-radius: 12px; font-size:.88rem; margin-top: 14px; }
.warning.show { display:block; }
.result { display:none; margin-top: 20px; border-top: 1px dashed var(--border); padding-top: 18px; }
.result.show { display:block; }
.result-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.result-item { background: var(--surface-2); border-radius: 12px; padding: 14px; text-align:center; }
.result-item .label { font-size:.78rem; color: var(--muted); margin-bottom:6px; }
.result-item .value { font-size: 1.15rem; font-weight:700; color: var(--text); }
.result-item.highlight .value { color: var(--primary-600); }
section.seo h2 { font-size: 1.25rem; margin: 28px 0 10px; }
section.seo p { color: var(--text); font-size: .96rem; }
details { background: var(--surface); border:1px solid var(--border); border-radius: 12px; padding: 14px 16px; margin-bottom: 10px; box-shadow: var(--shadow); }
summary { cursor:pointer; font-weight:600; font-size:.95rem; }
details p { margin: 10px 0 0; color: var(--muted); font-size:.9rem; }
@media (max-width:480px) { .card { padding:18px; } }
</style>
</head>
<body>
<div class="container">
<header class="hero">
<h1>Ölçek Hesaplama Aracı</h1>
<p>Ölçek oranınızı girin; model/harita boyutu veya gerçek boyuttan birini bilin, diğerini anında hesaplayın.</p>
<span class="trust-badge">🔒 %100 Tarayıcıda — Veriniz Hiçbir Yere Gönderilmez</span>
</header>
<!-- [reklam:arac-header] -->
<div class="ad-slot"></div>
<main class="card">
<div class="section-title">1. Ölçek Oranı (Model : Gerçek)</div>
<div class="ratio-row">
<input type="text" inputmode="decimal" id="scaleA" placeholder="1">
<span class="ratio-colon">:</span>
<input type="text" inputmode="decimal" id="scaleB" placeholder="100">
</div>
<div class="hint" style="margin-bottom:16px;">Örn: 1:100 → Model/harita üzerindeki 1 birim, gerçekte 100 birime eşittir.</div>
<hr class="divider">
<div class="section-title">2. Bilinen Boyut (Sadece Birini Girin)</div>
<div class="grid">
<div class="field">
<label for="modelSize">Model / Harita Üzerindeki Boyut</label>
<input type="text" inputmode="decimal" id="modelSize" placeholder="Örn: 4">
</div>
<div class="field">
<label for="realSize">Gerçek Boyut</label>
<input type="text" inputmode="decimal" id="realSize" placeholder="Örn: 400">
</div>
</div>
<div class="field">
<label for="unit">Birim <span style="font-weight:400; color:var(--muted);">(İsteğe Bağlı)</span></label>
<input type="text" id="unit" placeholder="Örn: cm, metre">
</div>
<button class="btn" onclick="hesaplaOlcek()">Hesapla</button>
<div class="warning" id="warningBox"></div>
<div class="result" id="resultBox">
<div class="result-grid">
<div class="result-item highlight">
<div class="label" id="resLabel">Hesaplanan Boyut</div>
<div class="value" id="resValue">-</div>
</div>
<div class="result-item">
<div class="label">Kullanılan Ölçek</div>
<div class="value" id="resScale">-</div>
</div>
</div>
</div>
</main>
<!-- [reklam:arac-alt] -->
<div class="ad-slot"></div>
<section class="seo">
<h2>Ölçek Hesaplama Nedir?</h2>
<p>Ölçek hesaplama, bir harita, mimari plan, maket veya modelin gerçek dünyadaki karşılığıyla olan boyut ilişkisini belirlemek için kullanılan bir yöntemdir. Ölçek genellikle "1:100" gibi iki sayı ile ifade edilir ve ilk sayı model veya harita üzerindeki birimi, ikinci sayı ise bu birimin gerçekte kaç katına karşılık geldiğini gösterir. Mimarlar, mühendisler, maket yapımcıları ve coğrafya ile uğraşan herkes için doğru ölçek hesaplaması, tasarımın gerçek dünyayla tutarlı ve orantılı olmasını sağlayan temel bir adımdır.</p>
<h2>Nasıl Kullanılır?</h2>
<p>Öncelikle kullanmak istediğiniz ölçek oranını "Ölçek Oranı" alanlarına girin (örneğin 1:100 için 1 ve 100). Ardından "Model / Harita Üzerindeki Boyut" veya "Gerçek Boyut" alanlarından sadece birini doldurun — hangisini bildiğiniz önemli değildir. "Hesapla" butonuna bastığınızda araç, girdiğiniz ölçeğe göre diğer boyutu otomatik olarak hesaplar. İsterseniz sonucun hangi birimde (cm, metre, mm vb.) olduğunu belirtmek için "Birim" alanını da doldurabilirsiniz. Tüm hesaplama tarayıcınızda yapılır, hiçbir veri kaydedilmez veya herhangi bir sunucuya gönderilmez.</p>
<h2>Sıkça Sorulan Sorular</h2>
<details>
<summary>Ölçek nedir ve nasıl okunur?</summary>
<p>Ölçek, bir harita, plan veya maket üzerindeki bir uzunluğun, gerçek dünyadaki karşılığına oranını gösterir ve genellikle 1:100 gibi iki sayı ile ifade edilir. İlk sayı model/harita üzerindeki birimi, ikinci sayı ise bu birimin gerçekte kaç katına denk geldiğini gösterir.</p>
</details>
<details>
<summary>1:100 ölçek ne anlama gelir?</summary>
<p>1:100 ölçek, harita veya maket üzerindeki 1 birimlik (örneğin 1 cm) bir uzunluğun, gerçekte 100 birime (100 cm, yani 1 metreye) karşılık geldiği anlamına gelir. Bu ölçek, mimari planlarda ve maket çalışmalarında sık kullanılır.</p>
</details>
<details>
<summary>Harita üzerindeki bir mesafeden gerçek mesafeyi nasıl bulurum?</summary>
<p>Harita üzerinde ölçtüğünüz mesafeyi, haritanın ölçek paydası ile çarparak gerçek mesafeyi bulabilirsiniz. Örneğin 1:25000 ölçekli bir haritada ölçülen 4 cm'lik bir mesafe, gerçekte 4 x 25000 = 100.000 cm, yani 1 kilometreye karşılık gelir.</p>
</details>
<details>
<summary>Maket veya model yaparken ölçek hesaplama neden önemlidir?</summary>
<p>Doğru ölçek hesaplaması, maketin veya modelin gerçek yapıyla orantılı ve tutarlı görünmesini sağlar. Yanlış ölçeklendirme, maketin parçalarının birbiriyle veya gerçek referans noktalarıyla uyumsuz çıkmasına neden olabilir.</p>
</details>
</section>
</div>
<script>
function showWarning(msg) {
var box = document.getElementById("warningBox");
box.textContent = msg;
box.classList.add("show");
document.getElementById("resultBox").classList.remove("show");
}
function clearWarning() {
var box = document.getElementById("warningBox");
box.textContent = "";
box.classList.remove("show");
}
function roundNice(value) {
var rounded = Math.round(value * 1000) / 1000;
if (Number.isInteger(rounded)) return rounded.toString();
return rounded.toFixed(3).replace(/0+$/, "").replace(/\.$/, "");
}
function hesaplaOlcek() {
clearWarning();
var scaleA = parseFloat(document.getElementById("scaleA").value.replace(",", "."));
var scaleB = parseFloat(document.getElementById("scaleB").value.replace(",", "."));
if (isNaN(scaleA) || scaleA <= 0 || isNaN(scaleB) || scaleB <= 0) {
showWarning("Lütfen geçerli bir ölçek oranı girin (her iki kısım da 0'dan büyük olmalı).");
return;
}
var modelRaw = document.getElementById("modelSize").value.trim();
var realRaw = document.getElementById("realSize").value.trim();
var hasModel = modelRaw !== "";
var hasReal = realRaw !== "";
if (hasModel && hasReal) {
showWarning("Lütfen Model/Harita Boyutu veya Gerçek Boyut alanlarından sadece birini doldurun.");
return;
}
if (!hasModel && !hasReal) {
showWarning("Lütfen Model/Harita Boyutu veya Gerçek Boyut alanlarından birine değer girin.");
return;
}
var unit = document.getElementById("unit").value.trim();
var suffix = unit ? (" " + unit) : "";
var resLabel = document.getElementById("resLabel");
var resValue = document.getElementById("resValue");
if (hasModel) {
var modelVal = parseFloat(modelRaw.replace(",", "."));
if (isNaN(modelVal) || modelVal <= 0) {
showWarning("Lütfen geçerli bir model/harita boyutu girin (0'dan büyük olmalı).");
return;
}
var realResult = modelVal * (scaleB / scaleA);
resLabel.textContent = "Hesaplanan Gerçek Boyut";
resValue.textContent = roundNice(realResult) + suffix;
} else {
var realVal = parseFloat(realRaw.replace(",", "."));
if (isNaN(realVal) || realVal <= 0) {
showWarning("Lütfen geçerli bir gerçek boyut girin (0'dan büyük olmalı).");
return;
}
var modelResult = realVal * (scaleA / scaleB);
resLabel.textContent = "Hesaplanan Model/Harita Boyutu";
resValue.textContent = roundNice(modelResult) + suffix;
}
document.getElementById("resScale").textContent = scaleA + " : " + scaleB;
document.getElementById("resultBox").classList.add("show");
}
</script>
</body>
</html>