Laden...
Avatar #avatar-3335.jpg
stalky13 myCSharp.de - Member
Elektroniker für Betriebstechnik Österreich Dabei seit 02.02.2012 4 Beiträge
Benutzerbeschreibung

Forenbeiträge von stalky13 Ingesamt 4 Beiträge

31.05.2012 - 16:55 Uhr

Hi,

die Lösung von Quadsoft entspricht genau der Aufgabe und ist somit völlig korrekt.
Mit Einfarbig hatte ich eigendlich einen Farbverlauf von der Fordergrund zur Hintergrund Farbe gemeint, beim erneuten durch lesen der Aufgabe, ist mir allerdings erst jetzt aufgefallen, das ich diesen Punkte hätte besser definieren sollen.

Wie auch immer, ich freue mich, dass nun doch eine Lösung gekommen ist 😁

@Quadsoft

Ich werd mir dein Programm und deine Facharbeit auf jeden Fall ansehen, aber erst morgen ich muss nämlich gleich los.
Ach ja und da deine Antwort richtig ist, darfst du vor 2 Monaten eine neue Aufgabe stellen 😉

25.03.2012 - 18:20 Uhr

Hallo Leute,

da die Letzte Aufgabe nicht gelöst wurde, nach 10 Tagen die Lösung vom Aufgabensteller selbst gepostet wurde, dieser darauf verzichtet hat erneut eine Aufgabe zu stellen ...

Somit ist das Programmierspiel wieder freigegeben ... und seit 5 Tagen keine neue Aufgabe mehr gestellt wurde, versuche ich es jetzt einmal mit einer neuen Aufgabe. Insofern niemand was dagegen hat.

Also:

Aufgabe:
Vervollständigen Sie, die im Test-Code definierte Methode so, dass diese eine [URL]Mandelbrot-Menge[/URL] (Apfelmännchen) zeichnet.

Rahmenbedingungen:
- Die Mandelbrot-Menge soll Einfarbig (frontColor) und mit einer Hintergrundfarbe (backColor) gezeichnet werden.
- Die Parameter "section -Left -Top -Right -Bottom" geben den Ausschnitt in der Mandelbrot-Menge an, der gezeichnet werden soll.
- Der Parameter "deep" gibt die maximale Anzahl Iterationen pro Pixel an.

Test-Code:

using System;
using System.Windows.Forms;
using System.Drawing;

namespace Fractals
{

	/// <summary>
	/// Stellt ein Fenster dar, dass ein Mandelbrot Apfelmännchen Fraktal anzeigt.
	/// </summary>
	public class MandelbrotForm : Form
	{

		//Mandelbrot PictureBox
		PictureBox mandelbrotPicture;

		/// <summary>
		/// Erstellt ein neues Mandelbrot Fenster.
		/// </summary>
		public MandelbrotForm()
		{
			//Fenster Parameter festlegen
			this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
			this.StartPosition = FormStartPosition.CenterScreen;
			this.Size = new Size(900, 600);

			//Image Control erstellen
			mandelbrotPicture = new PictureBox();
			mandelbrotPicture.Dock = DockStyle.Fill;
			this.Controls.Add(mandelbrotPicture);

			//Fenster anzeigen
			this.Show();

			//Image mit dem Mandelbrot Fraktal erstellen
			Bitmap mandelbrot = new Bitmap(this.Size.Width, this.Size.Height);
			using (Graphics gfx = Graphics.FromImage(mandelbrot))
			{
				Mandelbrot.DrawMandelbrot(
						gfx,
						Color.OrangeRed,
						Color.LightBlue,
						-2.0, -1.0, 1.0, 1.0,															//Ganzes Apfelmännchen
						//0.3184375, -0.0557421875, 0.34533203125, -0.0355712890625,					//Ausschnitt
						//0.32155833984375, -0.6327984375, 0.422811767578125, -0.55685836669921875,		//Ausschnitt
						100);
			}
			mandelbrotPicture.Image = mandelbrot;
		}

	}


	/// <summary>
	/// Stellt eine Klasse zum Zeichnen von Mandelbrot Apfelmännchen Fraktalen dar.
	/// </summary>
	public static class Mandelbrot
	{

		/// <summary>
		/// Zeichnet ein Mandelbrot Apfelmännchen.
		/// </summary>
		/// <param name="gfx">Grafikausgabe.</param>
		/// <param name="frontColor">Farbton, der für das Zeichnen verwendet werden soll.</param>
		/// <param name="backColor">Hintergrundfarbe.</param>
		/// <param name="sectionLeft">Gibt den linken Rand des Ausschnitts an, der von dem Apfelmännchen gezeichnet werden soll.</param>
		/// <param name="sectionTop">Gibt den oberen Rand des Ausschnitts an, der von dem Apfelmännchen gezeichnet werden soll.</param>
		/// <param name="sectionRight">Gibt den rechten Rand des Ausschnitts an, der von dem Apfelmännchen gezeichnet werden soll.</param>
		/// <param name="sectionBottom">Gibt den unteren Rand des Ausschnitts an, der von dem Apfelmännchen gezeichnet werden soll.</param>
		/// <param name="deep">Gibt die maximale Anzahl Iterationen an.</param>
		public static void DrawMandelbrot(Graphics gfx, Color frontColor, Color backColor, double sectionLeft, double sectionTop, double sectionRight, double sectionBottom, int deep)
		{
			//Erstellen Sie Ihren Code hier.
		}
	}
}

Viel Spaß und Gruß Stalky13

Ps. Fraktale sind Awsome 😄

Edit:
Da es nicht voran zu gehen scheint, hier ein Tipp: In dem Wikipediabeitrag findet ihr die nötigen Informationen zur Lösung ganz unten. Ihr müsst also nicht den ganzen Beitrag lesen, sondern nur einen kleinen Teil am Ende.
Meine Version besteht aus 20 Zeilen Code (ohne Klammern und Kommentare).

03.02.2012 - 15:26 Uhr

Naja, das bedeutet aber eine Menge arbeit

jepp 😭 und dazu kommt noch, dass du die Eigenschaften und Felder einer eigenen Settings-Klasse nich auf Propertys in einem Win-Form Control verschalten kannst.

kann ich nicht einfach für jeden User denselben Pfad festlegen?

Ja, ich hab Creating a Custom Settings Provider gefunden. Das Prinzip is einen eigenen SettingsProvider zu schreiben, der die Einstellungen verwaltet. Danach muss die Eigenschaft "Provider" jeder einzelnen Settings-Variable von "" auf den Namen deiner SettingsProvider-Klasse gesetzt werden.

Ich hab mir den Code aus dem Link aber noch nicht genau angesehen. Evtl. musst du ihn für dein vorhaben noch anpassen.

02.02.2012 - 23:59 Uhr

Hey gijoe222,

Das hier ist mein erter Beitrag in diesem Forum, ich hoffe ich kann dir helfen.

Wenn du die Bereichs-Option für eine Settings-Value auf Anwendung(Global) stellst, dann kannst due diese nicht vom Programm aus speichern. Die Anwendungs-Settings werden immer wieder mit den Default-Werten geladen. Diese liegen im selben Ordner wie die Assembly, in der "AssemblyName.config". Es gibt soweit ich weis keine Möglichkeit diese Datei mit den Werten aus der Settings-Klasse zu überschreiben.

Ich würde es über die XmlSerializer - Klasse lösen. Damit kannst du ein Objekt ,bzw. alle Felder und Eigenschaften mit dem Zugrifsmodifizierer Public, Serialisieren und in einem XML-File im Programmordner speichern und wieder Laden.

Gruß stalky13