Рисование фигур по точкам - C#
Формулировка задачи:
Здравствуйте! меня интересует такой вопрос: как мне нарисовать фигуры по двум точкам.
Ниже приведен мой вариант, но у меня за начальную координату берется левый верхний угол. Помогите исправить!
Param =1 линия, 2 - прямоугольник, 3 - эллипс, 4 - окружность.
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
//определяем координаты
if (Param != 1)
{
x_MouseDown = e.X;
y_MouseDown = e.Y;
offon = true;
}
Graphics g = Graphics.FromHwnd(pictureBox1.Handle);
Pen myPen = new Pen(Color.Black,3);
if (Param == 1)
{//рисование линии
x_MouseDown_2 = e.X;
y_MouseDown_2 = e.Y;
if (offon == false)
{
x_MouseDown_1 = x_MouseDown_2;
y_MouseDown_1 = y_MouseDown_2;
offon = true;
}
else
{
g.DrawLine(myPen, x_MouseDown_1, x_MouseDown_2, y_MouseDown_1, y_MouseDown_2);
x_MouseDown_1 = x_MouseDown_2;
y_MouseDown_1 = y_MouseDown_2;
}
if (Param == 2)
{
x_MouseDown_1 = e.X;
y_MouseDown_1 = e.Y;
}
if (Param == 3)
{
x_MouseDown_1 = e.X;
y_MouseDown_1 = e.Y;
}
if (Param == 4)
{
x_MouseDown_1 = e.X;
y_MouseDown_1 = e.Y;
}
}
}Решение задачи: «Рисование фигур по точкам»
textual
Листинг программы
enum Figure { Line, Triangle, Circle, Square, Polygon }
Figure currentFigure;
void DrawFigure()
{
switch (currentFigure)
{
case Figure.Line:
{ } break;
case Figure.Triangle:
{ } break;
case Figure.Circle:
{ } break;
case Figure.Square:
{ } break;
case Figure.Polygon:
{ } break;
default: break;
}
}