Quadtree-Kapazitätsrechner
Sehen Sie, wie groß ein voll besetzter Quadtree in einer bestimmten Tiefe wird: Tiefe 3 bedeutet 8 Zellen pro Seite, 64 Blätter, 21 innere Knoten und 85 Knoten insgesamt. Nutzen Sie das als Obergrenze, bevor Sie Speicher reservieren oder eine maximale Zoomstufe wählen. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Tiefe
- 3
- Verzweigungsfaktor
- 4
- Stufen
- 4
- Zellen pro Seite
- 8
- Blätter
- 64
Ein vollständiger Quadtree ist der Standard-Raumindex, wenn eine quadratische Region auf jeder Ebene in vier kongruente Kinder zerlegt wird. Kollisionswelten von Spielen, GIS-Kachelpyramiden, Lichtproben-Gitter und Bildkompressionsbäume teilen dieses Gerüst. Bevor Sie einen Knotenpool anlegen, einen GPU-Puffer dimensionieren oder einen Maximalzoom wählen, brauchen Sie die Worst-Case-Zählung: wie viele Blätter auf der gewählten Tiefe sitzen und wie viele Knoten existieren, wenn jeder Zweig besetzt ist. Dieser Quadtree-Kapazitätsrechner nimmt eine nichtnegative ganzzahlige Tiefe d, behandelt die Wurzel als Tiefe null und liefert die exakte Blattzahl vier hoch d, die Knotensumme der geometrischen Reihe von vier hoch d plus eins minus eins durch drei, den Rest innerer Knoten und die Zellen zwei hoch d an jeder Seite des Blattgitters.
Wie ein vollständiger Quadtree mit der Tiefe wächst
Ein Quadtree zerlegt rekursiv ein Quadrat oder jede zweidimensionale achsenausgerichtete Box in vier kongruente Quadranten: Nordwest, Nordost, Südwest und Südost. In einem vollständigen, perfekt ausgewogenen Baum der Tiefe d sitzt die Wurzel auf Tiefe null und jeder innere Knoten hat genau vier Kinder, sodass die Blätter ein regelmäßiges Gitter von zwei hoch d mal zwei hoch d bilden. Deshalb ist die Blattzahl genau vier hoch d: jede weitere Ebene vervierfacht die Zellenzahl, den Verzweigungsfaktor des Baums.
Die Gesamtzahl der Knoten ist die partielle geometrische Reihe eins plus vier plus sechzehn plus vier hoch d, die sich zu vier hoch d plus eins minus eins, geteilt durch drei, schließt. Innere Knoten sind diese Summe minus die Blätter, gleichwertig vier hoch d minus eins durch drei. Tiefe null ist der triviale Baum: eine einzige Wurzel, die zugleich das einzige Blatt ist, eine Zelle pro Seite.
Tiefe eins ist die Wurzel plus vier Kinder: fünf Knoten und vier Blätter. Tiefe zwei sind einundzwanzig Knoten und sechzehn Blätter, die erste Größe, die viele Kollisionssysteme tatsächlich ausliefern. Diese Identitäten setzen einen vollständig besetzten Baum voraus.
Adaptive Quadtrees, die leeren Raum nicht weiter unterteilen, nutzen weniger Knoten; die Zahlen dieses Rechners sind daher die strikte Obergrenze, gegen die Sie budgetieren sollten. Sie zählen keine Nachbarzeiger, Morton-Schlüssel oder Nutzlastbytes — nur die kombinatorische Struktur, genau das, was Sie brauchen, bevor Sie eine maximale Tiefe wählen.
Wo eine Quadtree-Kapazitätszahl ihren Nutzen zeigt
Grafik- und Engineteams nutzen einen Quadtree-Kapazitätsrechner, wenn sie eine maximale Unterteilungstiefe für eine zweidimensionale Broad-Phase, eine Lichtproben-Hierarchie oder eine Gelände-Clipmap wählen, weil vier hoch d so schnell wächst, dass eine Extraebene oft ein Vierfachsprung bei residenten Knoten ist. Kartografie- und GIS-Pipelines, die Slippy-Map-Kacheln oder Quadkeys im Bing-Stil prägen, brauchen dieselbe Zählung, um Festplatten-Caches und Content-Delivery-Präfixe bei einem gegebenen Zoom zu dimensionieren: das Blattgitter ist zwei hoch d mal zwei hoch d, die vertraute Kachelzahl auf diesem Zoom.
Bildcodecs und Textur-Streamer, die einen Block-Quadtree speichern, nutzen die Knotensumme, um Arenen vorab anzulegen und eine angeforderte Tiefe abzulehnen, die ein Speicherbudget sprengen würde. Fehlgeschlagene Validierung wird nicht berechnet. Halten Sie die Tiefe im dokumentierten Bereich, fixieren Sie die ganzzahligen Zählungen in Tests, und Sie erhalten reproduzierbare Planungszahlen für Entwurfsdokumente, Continuous-Integration-Budgets und Edge-Worker, ohne eine eigene Raumindex-Sandbox aufzubauen.
Anwendungsfälle
Knotenpool-Budgets für Spiele und Engines
Wählen Sie eine maximale Broad-Phase- oder Geländetiefe und lesen Sie nodes plus leaves, bevor Sie eine feste Knotenarena oder einen GPU-Puffer anlegen.
Bild- und Textur-Quadtree-Arenen
Dimensionieren Sie eine Blockbaum-Arena aus der Knotensumme vor und lehnen Sie eine Tiefe ab, deren 4^d Blätter das Speicherbudget sprengen würden.
Häufige Fragen
Wie viele Blätter hat ein Quadtree der Tiefe d?
Ein vollständiger Quadtree mit der Wurzel auf Tiefe 0 hat genau 4^d Blätter auf einem Gitter 2^d mal 2^d. Senden Sie depth als Ganzzahl von 0 bis 26.
Wie wird die maximale Knotenzahl berechnet?
Knoten sind die geometrische Summe 1 + 4 + 16 + … + 4^d, gleich (4^(d+1) − 1) / 3. Innere Knoten sind diese Summe minus die Blätter.
Zählt das einen adaptiven (dünnen) Quadtree?
Nein. Der Rechner liefert die vollständig besetzte Obergrenze. Ein dünner Baum, der leeren Raum nicht weiter unterteilt, nutzt weniger Knoten; budgetieren Sie gegen die Zahlen des vollständigen Baums.
Wie schätze ich den Speicherbedarf eines Quadtrees ab?
Multiplizieren Sie die Gesamtzahl der Knoten mit der Größe eines Knotens in Ihrem eigenen Programm. Gezählt wird nur die Struktur des Baums, nicht Verweise auf Nachbarn oder gespeicherte Daten, bei Tiefe 3 planen Sie also 85 Knoten ein.
Warum ist die Tiefe auf 26 begrenzt?
Damit jede ausgegebene Anzahl eine exakte ganze Zahl bleibt. Die Werte wachsen mit jeder Ebene um das Vierfache, und jenseits von Tiefe 26 ließe sich die Knotenzahl nicht mehr ohne Rundung darstellen.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev/quadtree-capacity \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"depth":3}'const res = await fetch("https://api.kit.forhosting.com/dev/quadtree-capacity", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"depth": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/quadtree-capacity",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"depth": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/quadtree-capacity", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"depth":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"depth":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/quadtree-capacity", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"depth": 3
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.quadtree_capacity",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_depth | 26 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Eingabevertrag, geschlossene Zählformeln und Tiefenobergrenze
Beispiel: Tiefe drei liefert acht Zellen pro Seite, vierundsechzig Blätter, einundzwanzig innere Knoten und fünfundachtzig Knoten insgesamt, weil eins plus vier plus sechzehn plus vierundsechzig fünfundachtzig ergibt. Kombinieren Sie die Antwort mit Ihrem eigenen Speichermodell, wenn jeder Knoten eine Nutzlast trägt: multiplizieren Sie nodes mit Ihrer Strukturgröße, um einen Worst-Case-Pool zu schätzen. Dieser Endpunkt legt keinen Baum an, durchläuft keine Punkte und erzeugt keine Morton-Codes; er wertet nur die Kapazitätsidentitäten aus, damit Sie planen können, bevor Sie bauen. Senden Sie per POST einen JSON-Body mit dem Pflichtfeld depth als Ganzzahl, auch akzeptiert als d oder max_depth: eine ganze Zahl von null bis einschließlich sechsundzwanzig. Fehlende Felder, leere Zeichenketten, Nichtganzzahlen, negative Werte und Tiefen über sechsundzwanzig scheitern mit invalid_input unter Nennung des Feldes und werden nicht berechnet. Bei Erfolg wiederholt der Body depth und die Konstante branching_factor vier, dann levels gleich Tiefe plus eins (die Anzahl der Knotenschichten von der Wurzel bis zu den Blättern), cells_per_side gleich zwei hoch d, leaves gleich vier hoch d, internal_nodes, nodes und eine kurze formula-Zeichenkette, die die beiden geschlossenen Formen wiederholt.
Wo eine Quadtree-Kapazitätszahl ihren Nutzen zeigt
Weil die Implementierung reines Parse der Stufe A ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Basispreis $0.002 ohne Modell-Tokens und ohne ausgehendes Netz.
Integrationsbeispiele
Kartenkachel- und GIS-Zoomplanung
Beim Zoom d ist das Blattgitter 2^d mal 2^d; nutzen Sie leaves und cells_per_side, um Caches, Quadkeys und CDN-Präfixe zu dimensionieren.
Technische Fragen
Warum ist die Tiefe auf 26 begrenzt?
Bei Tiefe 26 passen sowohl 4^d als auch die Knotensumme noch in IEEE-754-sichere Ganzzahlen, sodass jede Zählung exakt ist. Größere Tiefen würden in JavaScript-Zahlen Ganzzahlgenauigkeit verlieren.
Was kostet der Quadtree-Kapazitätsrechner?
Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht berechnet.