diff --git a/Game_of_Life/MainForm1.Designer.cs b/Game_of_Life/MainForm1.Designer.cs index f42c19b..67f9c6a 100644 --- a/Game_of_Life/MainForm1.Designer.cs +++ b/Game_of_Life/MainForm1.Designer.cs @@ -1,4 +1,6 @@ -namespace Game_of_Life; +using System.Media; + +namespace Game_of_Life; partial class MainForm1 { @@ -29,33 +31,52 @@ partial class MainForm1 /// private void InitializeComponent() { - this.pictureBox1 = new PictureBoxWithInterpolationMode(); + this.pictureBox1 = new Game_of_Life.PictureBoxWithInterpolationMode(); + this.label1 = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.pictureBox1.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Default; this.pictureBox1.Location = new System.Drawing.Point(0, 0); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(800, 450); this.pictureBox1.TabIndex = 0; this.pictureBox1.TabStop = false; + this.pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(this.pictureBox1_Paint); + this.pictureBox1.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseWheel); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.BackColor = System.Drawing.Color.Transparent; + this.label1.ForeColor = System.Drawing.Color.AliceBlue; + this.label1.Location = new System.Drawing.Point(12, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(27, 15); + this.label1.TabIndex = 1; + this.label1.Text = ""; // // MainForm1 // this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.Black; this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.label1); this.Controls.Add(this.pictureBox1); this.Name = "MainForm1"; this.Text = "MainForm1"; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.ResumeLayout(false); + this.PerformLayout(); } #endregion private PictureBoxWithInterpolationMode pictureBox1; + private Label label1; } \ No newline at end of file diff --git a/Game_of_Life/MainForm1.cs b/Game_of_Life/MainForm1.cs index ab8147a..fed2487 100644 --- a/Game_of_Life/MainForm1.cs +++ b/Game_of_Life/MainForm1.cs @@ -6,30 +6,13 @@ namespace Game_of_Life; public partial class MainForm1 : Form { + private int scalingFactor = 10; public MainForm1() { - Pixelmap pixelmap; - int scalingFactor = 10; - InitializeComponent(); - int height = pictureBox1.Size.Height; - int width = pictureBox1.Size.Width; + label1.Text = "Scaling Factor: " + scalingFactor.ToString() + $"\nDimensions: {pictureBox1.Size.Height.ToString()}x{pictureBox1.Size.Width.ToString()}"; - Graphics graphics = pictureBox1.CreateGraphics(); - - - pixelmap = new Pixelmap(height, width, scalingFactor); - Random rand = new Random(); - - for (int i = 0; i < 20; i++) - { - pixelmap.setPixel(rand.Next(width), rand.Next(height), rand.Next(3)); - } - - pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; - pictureBox1.InterpolationMode = InterpolationMode.NearestNeighbor; - pixelmap.paintOnGraphics(graphics); /* this.Shown += (s, e) => { @@ -45,4 +28,39 @@ public partial class MainForm1 : Form } };*/ } + + private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) + { + Pixelmap pixelmap; + + int height = pictureBox1.Size.Height; + int width = pictureBox1.Size.Width; + + Graphics graphics = e.Graphics; + + + pixelmap = new Pixelmap(height, width, scalingFactor); + Random rand = new Random(); + + for (int i = 0; i < 20; i++) + { + pixelmap.setPixel(rand.Next(width / scalingFactor), rand.Next(height / scalingFactor), rand.Next(3)); + } + + pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; + pictureBox1.InterpolationMode = InterpolationMode.NearestNeighbor; + pixelmap.paintOnGraphics(graphics); + // Thread.Sleep(1000); + } + + private void pictureBox1_MouseWheel(object sender, MouseEventArgs e) + { + scalingFactor += e.Delta/32; + if (scalingFactor < 1) + { + scalingFactor = 1; + } + label1.Text = "Scaling Factor: " + scalingFactor.ToString() + $"\nDimensions: {pictureBox1.Size.Height.ToString()}x{pictureBox1.Size.Width.ToString()}"; + pictureBox1.Refresh(); + } } \ No newline at end of file diff --git a/Game_of_Life/Pixelmap.cs b/Game_of_Life/Pixelmap.cs index ea23588..74d0fe0 100644 --- a/Game_of_Life/Pixelmap.cs +++ b/Game_of_Life/Pixelmap.cs @@ -9,8 +9,8 @@ public class Pixelmap public Pixelmap(int height, int width, int scalingFactor) { - this.height = height; - this.width = width; + this.height = height / scalingFactor; + this.width = width / scalingFactor; map = new Color[width, height]; for (int w = 0; w < width; w++) { @@ -60,8 +60,8 @@ public class Pixelmap Color pixelColor = map[w, h]; if (!pixelColor.Equals(Color.Black)) { - Pen pixelBrush = new Pen(pixelColor); - g.DrawRectangle(pixelBrush, new Rectangle((w/scalingFactor), (h/scalingFactor), scalingFactor, scalingFactor)); + Brush pixelBrush = new SolidBrush(pixelColor); + g.FillRectangle(pixelBrush, new Rectangle((w*scalingFactor), (h * scalingFactor), scalingFactor, scalingFactor)); } } }