Нарисовать равнобедренную трапецию - C#
Формулировка задачи:
Нужно нарисовать равнобедренную трапецию. Первая точка - верхняя левая вершина, потом, удерживая кнопку мыши, получаем правую нижнюю и при этом нам известен угол (считываем из TextBox'a). Т.е. должно выглядеть все примерно так, только всегда должна получаться равнобедренной с указанным углом при основании
Решение задачи: «Нарисовать равнобедренную трапецию»
textual
Листинг программы
public partial class Form1 : Form
{
private List<Point> polygonPoints = new List<Point>();
public Form1()
{
InitializeComponent();
}
private void TestForm_MouseClick(object sender, MouseEventArgs e)
{
switch (e.Button)
{
case MouseButtons.Left:
polygonPoints.Add(new Point(e.X, e.Y));
if (polygonPoints.Count > 1)
{
this.DrawPoligon(polygonPoints[polygonPoints.Count - 2], polygonPoints[polygonPoints.Count - 1]);
}
break;
case MouseButtons.Right:
{
polygonPoints.Clear();
Graphics g = this.CreateGraphics();
g.Clear(Color.White); // очистка, цвет можете указать любой
}
break;
}
}
private void DrawPoligon(Point p1, Point p2)
{
Graphics G = this.CreateGraphics();
Point p3 = new Point(p2.X-50,p1.Y);
Point p4 = new Point(p1.X - 50, p2.Y);
G.DrawLine(Pens.Black, p1, p3);
G.DrawLine(Pens.Black, p3, p2);
G.DrawLine(Pens.Black, p2, p4);
G.DrawLine(Pens.Black, p1, p4);
}
}