Ik snap em helemaal! Super bedankt! Nu nog ff een voldoende halen :)
Berichten geplaatst door Ganesh
-
RE: Vorming Fractal.
-
RE: Vorming Fractal.
Ik snap alleen 2 dingetjes nog niet, hoe moet ik dan bijvoorbeeld 6 + 3i invullen bij c? gewoon Z(n+1) = Z(n)^2 + 6 + 3i ?
En bij jouw voorbeeld gebruik je niet Z(n+1)..waarom niet? -
Vorming Fractal.
Hoi!
Ik ben Ganesh en doe nu 5 HAVO. Mijn PWS gaat over Fractals en Complexe Getallen.
Wat ik me af vraag is of iemand de formule kan verklaren.Zn + = Z^2 + C
Groet, Ganesh
-
RE: Fractalen
Ik heb even een URL, mijn eigen fractal kan ik niet uploaden. De vorm is precies hetzelfde.
-
RE: Fractalen
Ik ga toch weer doorvragen. Hoe wordt de zwarte vorm in het midden gevormd?
-
RE: Fractalen
Half..ik snap nog niet precies hoe die pixels verschillende kleuren krijgen..
-
RE: Fractalen
Dit is de code, als je het bestand helemaal wilt hebben, dan heb ik je e-mail nodig.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace PWS_Fractal { public partial class Form1 : Form { static double pXmax = 0; static double pXmin = 0; static double pYmax = 0; static double pYmin = 0; public Form1() { InitializeComponent(); KeyDown += new KeyEventHandler(Form1_KeyDown); } private void Form1_KeyDown(object sender, KeyEventArgs e) { int x = pictureBox1.Location.X; int y = pictureBox1.Location.Y; if (e.KeyCode == Keys.Right) x += 5; else if (e.KeyCode == Keys.Left) x -= 5; else if (e.KeyCode == Keys.Up) y -= 5; else if (e.KeyCode == Keys.Down) y += 5; } private void Form1_Load(object sender, EventArgs e) { Bitmap pic = MandelbrotSet(pictureBox1, 2, -2, 2, -2); pictureBox1.Image = pic; } static Bitmap MandelbrotSet(PictureBox pictureBox1, double Xmax, double Xmin, double Ymax, double Ymin) { pXmax = Xmax; pYmax = Ymax; pXmin = Xmin; pYmin = Ymin; Bitmap pic = new Bitmap(pictureBox1.Width, pictureBox1.Height); double zx = 0; double zy = 0; double cx = 0; double cy = 0; double xzoom = ((Xmax - Xmin) / Convert.ToDouble(pic.Width)); double yzoom = ((Ymax - Ymin) / Convert.ToDouble(pic.Height)); double tempzx = 0; int loopmax = 1000; int loopgo = 0; for (int x = 0; x < pic.Width; x++) { cx = (xzoom * x) - Math.Abs(Xmin); for (int y = 0; y < pic.Height; y++) { zx = 0; zy = 0; cy = (yzoom * y) - Math.Abs(Ymin); loopgo = 0; while (zx * zx + zy * zy <= 4 && loopgo < loopmax) { loopgo++; tempzx = zx; zx = (zx * zx) - (zy * zy) + cx; zy = (2 * tempzx * zy) + cy; } if (loopgo != loopmax) pic.SetPixel(x, y, Color.FromArgb(loopgo % 128 * 2, loopgo % 32 * 7, loopgo % 16 * 14)); else pic.SetPixel(x, y, Color.Black); } } return pic; } private void button1_Click(object sender, EventArgs e) { Bitmap pic = MandelbrotSet(pictureBox1, 2, -2, 2, -2); pictureBox1.Image.Dispose(); pictureBox1.Image = pic; } private void button2_Click(object sender, EventArgs e) { saveFileDialog1.FileName = "Fractal"; ImageFormat format = ImageFormat.Jpeg; if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) { pictureBox1.Image.Save(saveFileDialog1.FileName, format); } } private void pictureBox1_MouseClick(object sender, MouseEventArgs e) { int Cx = e.X; int Cy = e.Y; double Xzoom = ((pXmax - pXmin) / Convert.ToDouble(pictureBox1.Width)); double Yzoom = ((pYmax - pYmin) / Convert.ToDouble(pictureBox1.Height)); int zoomx = pictureBox1.Width / 5; int zoomy = pictureBox1.Height / 5; Bitmap pic = MandelbrotSet(pictureBox1, ((Cx + zoomx) * Xzoom) - Math.Abs(pXmin), ((Cx - zoomx) * Xzoom) - Math.Abs(pXmin), ((Cy + zoomy) * Yzoom) - Math.Abs(pYmin), ((Cy - zoomy) * Yzoom) - Math.Abs(pYmin)); pictureBox1.Image.Dispose(); pictureBox1.Image = pic; } private void button3_Click(object sender, EventArgs e) { MessageBox.Show(" Muis - Klik één keer met de muis op een locatie in de afbeelding \n en deze zal inzoomen op deze locatie.\n Reset - Brengt de afbeeling terug naar originele staat. \n Opslaan - Slaat de afbeeling op. (JPEG, PNG of Bitmap)", "Help", MessageBoxButtons.OK, MessageBoxIcon.Question); } private void button4_Click(object sender, EventArgs e) { this.Close(); } public string Filter { get; set; } public static double Ymin { get; set; } public static double Xmin { get; set; } public static double Ymax { get; set; } public static double Xmax { get; set; } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { label1.Text = e.X - (pictureBox1.Width / 2) + ""; label2.Text = e.Y - (pictureBox1.Height / 2) + ""; } } }
-
RE: Fractalen
Hoi Berend,
Ik heb een mandelbrot fractal geprogrammeerd in de C# met Visual Studio. Om een kleur de maken in een pictureBox kun je gebruik maken van Color.FromArgb(0, 0, 0) (<- bijvoorbeeld). In plaats van deze notitie wijze, werd mij verteld over de notatie
'pic.SetPixel(x, y, Color.FromArgb(loopgo % 128 * 2, loopgo % 32 * 7, loopgo % 16 * 14));'
pic is de afbeelding en loopgo = 0.
Hoe kan het dat er zoveel verschillende kleuren hierdoor ontstaan?
Groet, Ganesh
p.s. wil je misschien de hele broncode hebben?
-
Fractalen
Hallo,
Hoe kan het zijn dat een fractal kleuren bevat op die locaties die kleur bevatten. Ik heb er zelf 1 geprogrammeerd maar daar heb ik een standaard eigenschap gebruikt.