![]() |
Sierpinski-Teppich
Liste der Anhänge anzeigen (Anzahl: 1)
Ich soll einen Sierpinski-Teppich mit Delphi programmieren, der eine *.svg-Datei einliest, die dort bereits beschriebene (programmierte) Sierpinski-Teppich-Stufe erkennt und verfeinert.
Ich weiß das ich einen Rekursions-Algorithmus benutzen soll, verstehe aber nicht wie. (Im Anhang befinden sich meine bisherigen Ergebnisse. Anhang 38083)
Delphi-Quellcode:
Bitte um Hilfe, mfg nero
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Memo1: TMemo; OpenDialog1: TOpenDialog; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Verfeinern(a,b,c,d: integer); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; x,a,b,c,d,n: integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog1.Execute then begin Memo1.Lines.LoadFromFile(OpenDialog1.FileName); end; end; procedure TForm1.Button2Click(Sender: TObject); begin Memo1.Lines[Memo1.Lines.count-2] := '<rect x=a y=b width=c height=d fill="black"/>'; Memo1.Lines.SaveToFile('svg-verfeinerungsstufe' + IntToStr(x) + '.html'); x:= x+1; end; procedure TForm1.FormCreate(Sender: TObject); begin x := 1; end; procedure TForm1.Verfeinern(a,b,c,d: integer); begin {Koordinaten der bestehenden Quadraten (aus der *.svg-Datei) einlesen. Anschließend durch Algorithmus verfeinern. Dabei wird Länge + Breite der bestehenden Quadraten /3 geteilt. Die neuen Werte für Länge und Breite bilden die Länge und Breite der verfeinerten Quadraten. Diese werden in der Mitte des vorher bestehenden Quadrates angezeigt (siehe Sierpinski-Teppich) Letztendlich alles wieder in der *.svg-Datei speichern.} end; end. |
AW: Sierpinski-Teppich
Hallo 101nero,
das ist noch nicht sehr viel was du hast. Ich kenne jetzt diesen Sierpinski-Teppich gar nicht, aber du musst ja den Inhalt der svg Datei ersteinaml analysieren und in verarbeitbare Bestandteile zerlegen. Dann kannst du die Verfeinerung durchführen. Außerdem solltest du eine Idee für diese Verfeinerung hier Posten, dann können wir dir helfen, das ganze rekursiv hinzubekommen. Wie du weißt, machen wir hier keine Hausaufgaben. Wir unterstützen nur bei konkreten Problemen. |
AW: Sierpinski-Teppich
aus svg datei einlesen -> mit suchfunktion? aber ich kann ja nicht nach einem variablen wert suchen...
der wert in der svg-datei (länge,breite) kann ja aber von svg-datei zu svg-datei unterschiedlich sein. wonach such ich dann? nach einer bestimmten position kann ich ja auch nicht suchen, weil die gewissen werte immer an einer anderen stelle stehen... |
AW: Sierpinski-Teppich
Zitat:
Also wird es doch eine Struktur geben und diese gilt es zunächst zu ergründen. |
AW: Sierpinski-Teppich
Sollst Du aus dem Grundmuster eine neue SVG-Datei zusammenstellen oder mit einem Delphi-Programm anzeigen?
|
AW: Sierpinski-Teppich
Zitat:
|
AW: Sierpinski-Teppich
Aha - danke! Welcher hochintelligente Mensch (Lehrer?) ist denn auf die "geniale" Idee gekommen, ein SVG-Bild als HTML-Datei zu speichern!? :wall:
SVG-Bilder sind XML-Dateien und können mit einem entsprechenden Parser gelesen und geschrieben werden. Ist bei der Aufgabenlösung die Verwendung eines deartigen Parsers zugelassen oder muß das alles mit einfachen Delphi-Funktionen erledigt werden? |
AW: Sierpinski-Teppich
Programmiersprache ist frei wählbar.
Aber ich muss irgendwie eine *.svg-Datei öffnen, aus ihr auslesen, sie verändern (siehe Sierpinski-Teppich), und wieder als *.svg-Datei abspeichern. Also wenn es denn soviel einfacher ist eine xml-Datei zu benutzten, müsste ich doch erst mit Delphi aus der svg-Datei eine xml-Datei machen?! Ich muss es irgendwie schaffen die Width und Height-Werte an der richtigen Stelle zu finden und auszulesen, egal ob es 2 oder 10 Stellen sind (50, 50000000..) |
AW: Sierpinski-Teppich
Zitat:
Das Speicherformat dieser Datei ist XML. Daraus folgt => Eine SVG-Datei (*.svg) kann ich wie eine XML-Datei behandeln/verarbeiten |
AW: Sierpinski-Teppich
In Deinem Anhang befinden sich die svg-Bilder in den html-Dateien. Einfach mal mit einem Texteditor oder Delphi öffnen und anschauen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz