Mausposition bestimmen

Slater

Erfahrenes Mitglied
Ich habe folgendes Problem:
Ich möchte in der PictureBox ein Quadrat zeichen. Der Mittelpunkt ist durch die Mouse_Down X/Y Koordinaten gegeben. Wie kann ich es jetzt machen, dass der Mauszeiger beim "ziehen" des Quadrates nur noch im 45° Winkel verschoben werden kann (Sonst zeichnet es ja evtl ein Rechteck und kein Quadrat...)

Danke

Hier noch ein Stück Code:

Code:
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
		{
			if (e.Button == MouseButtons.Left)
			{
			StartX = e.X;
			StartY = e.Y;
			}
		}
		private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
		{
			if (comboBox1.SelectedText == "Quadrat")
			{
                             Hier der gesuchte Code :(
			}
		}
		private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
		{
			if (e.Button == MouseButtons.Left)
			{
			int EndX = e.X;
			int EndY = e.Y;
			Punkt mittelpunkt = new Punkt(StartX,StartY);		
				switch (comboBox1.SelectedText)
				{
					case "Kreis":
					int X = (EndX-StartX)*(EndX-StartX);
					int Y = (EndY-StartY)*(EndY-StartY);
					int R = Convert.ToInt32(Math.Sqrt(X+Y));
					Kreis meinKreis = new Kreis(mittelpunkt,R);
					meinKreis.zeichneQuerschnitt(pictureBox1);
					break;
					case "Quadrat":
					Quadrat meinQuadrat = new Quadrat (mittelpunkt,10);
					meinQuadrat.zeichneQuerschnitt(pictureBox1);
					break;
					case "Rechteck":
					Länge = 2*(EndX-StartX);
					Höhe = 2*(EndY-StartY);
						if (Länge < 0)
						{
							Länge = Länge*(-1);
						}
						if (Höhe < 0)
						{
							Höhe = Höhe*(-1);
						}
					Rechteck meinRechteck = new Rechteck(mittelpunkt,Länge,Höhe);
					meinRechteck.zeichneQuerschnitt(pictureBox1);
					break;
				}
			}
		}
 
Zurück