Java Rekursionsdreieck mit Abweichung

9

Hallo Ich bin ziemlich neu in der Programmierung und ich versuche, in Java, eine Funktion zu erstellen, die rekursive Dreiecke aus einem größeren Dreiecke Mittelpunkte zwischen den Ecken erstellt, wo die neuen Dreiecke Punkte von der normalen Position in y-Wert abweichen. Siehe die Bilder unten für eine Visualisierung.

Das erste Bild zeigt den Verlauf des rekursiven Algorithmus ohne Abweichung (Reihenfolge 0,1,2) und das zweite Bild zeigt es mit (Ordnung 0,1).

Ich habe es geschafft, ein funktionierendes Stück Code zu erzeugen, das genau das schafft, was ich für die ersten paar Befehle möchte, aber wenn wir Ordnung 2 erreichen, stoße ich auf das Problem, wo die kleineren Dreiecke nicht die gleichen Mittelpunkte und verwenden sieht daher wie das Bild unten aus.

Ich brauche also Hilfe, um die richtigen Mittelpunkte für jedes der Dreiecke zu speichern und aufzurufen. Ich habe darüber nachgedacht, eine neue Klasse zu implementieren, die die Berechnung der Mittelpunkte steuert und sie usw. speichert, aber wie gesagt, ich brauche Hilfe dabei.

Unten ist mein aktueller Code

Die Punktklasse speichert einen x- und y-Wert für einen Punkt

lineBetween erstellt eine Linie zwischen den ausgewählten Punkten

%Vor%

Vielen Dank im Voraus

Victor

    
user1801527 05.11.2012, 23:24
quelle

2 Antworten

1

Sie können ein Dreieck durch drei Punkte (Scheitelpunkte) definieren. Die Eckpunkte a, b und c bilden also ein Dreieck. Die Kombinationen ab, ac und bc sind die Kanten. Also geht der Algorithmus:

  1. Beginnen Sie zuerst mit den drei Eckpunkten a, b und c
  2. Erhalte die Mittelpunkte der 3 Kanten p1, p2 und p3 und erhalte die 4 Sätze von Eckpunkten für die 4 kleineren Dreiecke. (a, p1, p2), (b, p1, p3), (c, p2, p3) und (p1, p2, p3)
  3. Finde rekursiv die Unterdreiecke der 4 Dreiecke, bis die Tiefe erreicht ist.

Als grobe Richtlinie geht der Code also

%Vor%

Sie müssen die relevanten Dreiecke in einer Datenstruktur speichern.

    
Jeewantha 20.11.2012 11:38
quelle
0

Sie berechnen die Mittelpunkte jedes Eckpunkts in den verschiedenen Pfaden Ihrer Rekursion immer wieder neu. Solange Sie sie nicht zufällig ändern, erhalten Sie für jeden Pfad den gleichen Mittelpunkt, so dass es kein Problem gibt. Aber wenn Sie die Mittelpunkte zufällig ändern, enden Sie mit zwei verschiedenen Mittelpunkten in zwei verschiedenen Rekursionswegen.

Sie könnten Ihren Algorithmus so ändern, dass Sie nicht nur die 3 Ecken des Dreiecks, sondern auch die modifizierten Mittelpunkte jedes Eckpunkts passieren. Oder Sie behalten sie in einer separaten Liste oder Karte oder etwas und berechnen sie nur einmal und schauen sie dann anders an.

    
Ridcully 06.11.2012 14:14
quelle

Tags und Links