Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по C#.doc
Скачиваний:
259
Добавлен:
08.11.2018
Размер:
5.81 Mб
Скачать
        1. Построение треугольника в этом примере создадим код для рисования треугольника. Координаты треугольника создаются случайным образом: Чтобы создать треугольник:

  1. Координаты вершин треугольника будут находиться в структуре “Treyg”. Для этого создадим переменные для работы со структурой и саму структуру.

public static class tr

{ public static Graphics graph;

public static Pen MyPen;

public struct Treyg

{ public struct A

{public static int x, y;};

public struct B

{ public static int x, y;};

public struct C

{ public static int x, y;};

}; }

  1. С помощью датчика случайных чисел создадим координаты вершин треугольника. В данном примере размер панели взят фиксированный: 270х240.

private void treyg(object sender)

{ //Создаем треугольник

panel1.BackColor = Color.Green;

label1.Visible = false; Random r = new Random();

tr.graph = this.panel1.CreateGraphics();

tr.graph.Clear(Color.White);

tr.MyPen = new Pen(Color.Blue, 1);

tr.Treyg.A.x = r.Next(80)+10; tr.Treyg.A.y = r.Next(70)+10;

tr.Treyg.B.x = r.Next(80) + 80; tr.Treyg.B.y = r.Next(70) + 160;

tr.Treyg.C.x = r.Next(80) + 180; tr.Treyg.C.y = r.Next(70) + 80;

tr.graph.DrawEllipse(tr.MyPen, tr.Treyg.A.x, tr.Treyg.A.y, 2, 2);

tr.graph.DrawEllipse(tr.MyPen, tr.Treyg.B.x, tr.Treyg.B.y, 2, 2);

tr.graph.DrawEllipse(tr.MyPen, tr.Treyg.C.x, tr.Treyg.C.y, 2, 2);

// соединяем их линиями

tr.graph.DrawLine(tr.MyPen, tr.Treyg.A.x, tr.Treyg.A.y, tr.Treyg.B.x,

tr.Treyg.B.y);

tr.graph.DrawLine(tr.MyPen, tr.Treyg.B.x, tr.Treyg.B.y, tr.Treyg.C.x,

tr.Treyg.C.y);

tr.graph.DrawLine(tr.MyPen, tr.Treyg.C.x, tr.Treyg.C.y, tr.Treyg.A.x,

tr.Treyg.A.y);

}

  1. Будем рисовать треугольник по щелчку мыши на панели:

private void panel1_Click(object sender, EventArgs e)

{ treyg(sender); }

        1. Создание графика функции в этом примере создадим код для построения графика функции на интервале .

Чтобы построить график функции необходимо:

  1. Создать объекты полотно и перо:

public static class graphiс

{ public static Graphics graph;

public static Pen MyPen;

};

  1. Задать характеристики полотна и пера. Перьев может быть несколько: для построения осей и графиков.

graphic.graph = this.panel1.CreateGraphics();

graphic.graph.Clear(Color.White);

graphic.MyPen = new Pen(Color.Blue, 1);

Определить позиции начала координат и границы области рисования: X,Y - начало координат, Xmax, Ymax - границы области.

int X, Y, Xmax, Ymax;

Xmax = panel1.Size.Width; Ymax = panel1.Size.Height;

X = Xmax / 2; Y = Ymax / 2;

  1. Построить оси декартовой системы координат:

// Ox:

graphic.graph.DrawLine(graphic.MyPen, 0, Y, Xmax, Y);

// Oy:

graphic.graph.DrawLine(graphic.MyPen, X, 0, X, Ymax);

  1. Задать шаг для расчета точек по оси Ох в декартовой системе координат и начальную точку, в данном:

double h = 0.1, Xdec = -4, Ydec = Xdec*Xdec/2-4;

Задать масштаб и перевести координаты точки в декартовой системе координат в систему координат принятой в C#:

int d = 10, Xp = Convert.ToInt16(Xdec*d)+X, Yp =- Convert.ToInt16(Ydec*d)+Y;

  1. Создать переменные для расчета следующей точки и задать цикл для построения графика:

// Следующая точка

int Xp1, Yp1;

// Рисуем график

while (Xdec< 4)

{ Xp1 = Convert.ToInt16((Xdec + h) * d)+X;

Yp1 = -Convert.ToInt16(((Xdec+h)*(Xdec + h)/2-4) * d) +Y;

graphic.graph.DrawLine(graphic.MyPen, Xp, Yp, Xp1, Yp1);

// graphic.graph.DrawLine(graphic.MyPen, 90, 190, 180, 185);

Xdec = Xdec + h; Ydec = Xdec *Xdec/2-4;

Xp = Convert.ToInt16(Xdec * d) + X; Yp =- Convert.ToInt16(Ydec * d)+Y;

}