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:
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;
}
}
}