Code für Zerlegung von Quadraten

Neue Frage »

Hammala Auf diesen Beitrag antworten »
Code für Zerlegung von Quadraten
Meine Frage:
Hallo zusammen,

ich habe da ein Problem und zwar habe ich ein WegIntegral implementiert, funkioniert auch, das von 4 Wegen/Funktionen abhängt.
Also das rechnet mir das Wegintegral aus entlang eines Quadrats, jede Kante ist ein Weg.

Falls nun das Wegintegral nicht 0 ist, dann solle dieses Quadrat in 4 kleinere Quadrate zerlegt werden. Für jedes dieser 4 kleinere Quadrate soll wieder geguckt werden, ob das Integral nicht 0 ist und ggf. wieder zerlegt werden, usw

Meine Ideen:
weiß jemand wie das geht?
HAL 9000 Auf diesen Beitrag antworten »

Tja, wo genau ist das Problem? Willst du wissen, wie man ein Quadrat in vier Teilquadrate zerlegt, d.h. im wesentlichen, wie man die Eckpunkte der Teilquadrate ermittelt? Denn alles andere hast du ja schon erledigt, wenn ich dies hier

Zitat:
Original von Hammala
und zwar habe ich ein WegIntegral implementiert, funkioniert auch, das von 4 Wegen/Funktionen abhängt.
Also das rechnet mir das Wegintegral aus entlang eines Quadrats, jede Kante ist ein Weg.

richtig deute. verwirrt
Hammala Auf diesen Beitrag antworten »

also ein Quadrat zerlegen kann ich, aber ich soll ja alle Teilquadrate durchgehen (dafür brauch ich schon mal 2 Schleifen) und prüfen, ob das Wegintegral nicht 0 ist und dann nochmal zerlegen, und dann geht das gleich von vorne los (dafür brauche ich ja dann wieder Schleifen) und wieder und wieder...., ich weiß nicht, wie ich das als Code schreiben soll
HAL 9000 Auf diesen Beitrag antworten »

OK, es geht also um eine eher programmiertechnische Frage.

Naja, die meisten "seriösen" Programmiersprachen erlauben rekursive Aufrufe, d.h. die Funktion ruft sich selbst auf mit dann anderen Parametern (bei dir dann Parameter des Teilquadrats). Selbstverständlich benötigst du da eine vernünftige Abbruchbedingung, sonst wartest du bis zum Sankt-Nimmerleins-Tag, bei zu hoher Aufruftiefe kann es evtl. auch mit einem Stackfehler enden - aber die zuerst angesprochene Rechenzeit ist i.d.R. das größere Problem.
Hammala Auf diesen Beitrag antworten »

super danke,

ich werds gleich mal probieren
Hammala Auf diesen Beitrag antworten »

würdest du mir vielleicht so ne art pseudo code schreiben, ganz grob fur irgendeine sprache, ich wandels dann in python um, das weginteg. hab ich schon, wäre echt super
 
 
HAL 9000 Auf diesen Beitrag antworten »

Zitat:
Original von Hammala
würdest du mir vielleicht so ne art pseudo code schreiben

Aber bitte - viel nützen wird es dir nicht, er enthält nur banale Selbstverständlichkeiten


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure WegIntegral (EckpunktLinksUnten, Seitenlaenge)
{
    if (Seitenlaenge < MinimumSeitenlaenge)
    {
       ... AbbruchCode ...
    }
    else
    {
       ... Berechne Integralwert ...
       if (Integralwert != 0)
       {
           NeueSeitenlaenge = Seitenlaenge/2;
           WegIntegral(EckpunktLinksUnten, NeueSeitenlaenge);
           WegIntegral(EckpunktLinksUnten + NeueSeitenlaenge * xVektor, NeueSeitenlaenge);
           WegIntegral(EckpunktLinksUnten + NeueSeitenlaenge * yVektor, NeueSeitenlaenge);
           WegIntegral(EckpunktLinksUnten + NeueSeitenlaenge * (xVektor + yVektor), NeueSeitenlaenge);
       }
    }
}
Hammala Auf diesen Beitrag antworten »

Zitat:
Original von HAL 9000
Aber bitte - viel nützen wird es dir nicht, er enthält nur banale Selbstverständlichkeiten


das hat mir super geholfen,
ich hab noch nie ein rekursives programm geschrieben und in Python habe ich noch nie was geschrieben, wollte mal sehen wie die idee ist,
1000 dank dafür!
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »