Построитель графиков на C#

Автор работы: Пользователь скрыл имя, 05 Октября 2011 в 16:20, дипломная работа

Краткое описание

Мир компьютерных и информационных технологий без преувеличения можно назвать наиболее динамичной областью современных знаний. Практически каждый год появляются новые модели процессоров и комплектующих, новые версии операционных систем и программного обеспечения. Все это происходит на фоне постоянного усложнения не только отдельных физических и программных компонентов, но и лежащих в их основе концепций и идей. Появилась надобность создавать все более большие сложные программы.

Содержание работы

ПОСТАНОВКА ЗАДАЧИ 6

ВВЕДЕНИЕ 7

1. ОБЩАЯ ЧАСТЬ 8

1.1. Обзор состояния вопроса 8

1.2. Основные этапы разработки программных продуктов 11

1.2.1. Концептуализация 12

1.2.2. Анализ разрабатываемого приложения 14

1.2.3. Проектирование разрабатываемого приложения 16

1.2.4. Эволюция приложения 17

1.2.5. Сопровождение приложения 19

1.3. Технологии разработки программных продуктов 20

1.3.1. Объектно-ориентированное программирование 20

1.3.2. Технология .NET 21

1.3.2.1. Компоненты .NET 23

1.3.2.2. Двоичный стандарт компонентов 25

2. СПЕЦИАЛЬНАЯ ЧАСТЬ 27

2.1. Разработка программы 27

2.1.1. Анализ разрабатываемого приложения 27

2.1.2. Проектирование разрабатываемого приложения 34

2.2. Языки программирования 35

2.3. Выбор языка программирования 37

2.4. Применение графиков в решении уравнений 38

3. ЭКОНОМИЧЕСКАЯ ЧАСТЬ 41

3.1. Исходные данные 41

3.2. Применяемые формулы с расшифровкой условных обозначений 42

3.3. Расчет полной себестоимости разработки программного

продукта по базовому варианту 45

3.4. Расчет полной себестоимости разработки программного

продукта по эксплуатационному варианту 46

3.5. Расчет полной себестоимости разработки программного

продукта по варианту разработки 57

3.6. Расчет экономической эффективности внедрения

программного продукта 48

3.7. Социально-психологические аспекты

использования разработки 50

4. ЭКСПЛУАТАЦИЯ ТЕХНИЧЕСКИХ И ПРОГРАММНЫХ

СРЕДСТВ 51

4.1. Эксплуатация технических средств 51

4.2. Эксплуатация разработанной программы 52

ЗАКЛЮЧЕНИЕ 54

СПИСОК ЛИТЕРАТУРЫ 55

ПРИЛОЖЕНИЕ 56

Содержимое работы - 1 файл

Дипломная.doc

— 1.25 Мб (Скачать файл)

                        }

                  }

            } 

            public void Draw_ObjectParametricFunc(Graphics g, Graphic graph)

            {

                  g.SmoothingMode = SmoothingMode.HighQuality;

                  Pen pen = new Pen(Color.Red, 1); 

                  int delta = (int)(graph._end-graph._begin);

                  int a = (int)(delta/graph._step)+1;

                  int b = (int)(delta/graph._step);

                  int axb=a*b; 

                  for(int x=0, y=a; x<axb; x+=a, y+=a)

                  {

                        for(int i=x, j=y, t=0; t<b; i++, j++, t++)

                        {

                              g.DrawLine(pen, (int)graph.vlist_trans[i].x, (int)graph.vlist_trans[i].y, (int)graph.vlist_trans[i+1].x, (int)graph.vlist_trans[i+1].y)

                              g.DrawLine(pen, (int)graph.vlist_trans[i+1].x, (int)graph.vlist_trans[i+1].y, (int)graph.vlist_trans[j+1].x, (int)graph.vlist_trans[j+1].y)

                              g.DrawLine(pen, (int)graph.vlist_trans[j+1].x, (int)graph.vlist_trans[j+1].y, (int)graph.vlist_trans[j].x, (int)graph.vlist_trans[j].y); 

                              g.DrawLine(pen, (int)graph.vlist_trans[j].x, (int)graph.vlist_trans[j].y, (int)graph.vlist_trans[i].x, (int)graph.vlist_trans[i].y); 

                        }

                  }

            } 

            public void DrawScene(Graphics g, Graphic graph)

            

                  Calculate_and_Transform_Coordinate(graph); 

                  if(Graphic.axes._ModeAxis == 0 || Graphic.axes._ModeAxis == 1)

                  {

                        DrawAxis(g, Graphic.cam.mcam, Graphic.axes, graph.vlist);

                  }

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

                  if(graph.TypeFunction == "f(x)=")

                  {

                        Draw_Object2D(g, graph);

                  }

                  else if(graph.TypeFunction == "f(x,y)=")

                  {

                        Draw_Object3D(g, graph);

                  }

                  else if(graph.TypeFunction == "Параметрический вид")

                  {

                        Draw_ObjectParametricFunc(g, graph);

                  } 

                  if(Graphic.axes._ModeAxis == 0 || Graphic.axes._ModeAxis == 1)

                  {

                        DrawAxis(g, Graphic.cam.mcam, Graphic.axes, graph.vlist);

                  }

            } 

            private void Calculate_and_Transform_Coordinate(Graphic graph)

            

                  try

                  {

                        graph.InitGraph();

                  }

                  catch (Exception ex)

                  {

                        MessageBox.Show(ex.Message,"Error",MessageBoxButtons.OK, MessageBoxIcon.Error);

                  }

                  //Вычисление  и преобразование координат 

                  graph.MainGraph();

            } 

            public void DrawAxis(Graphics g, Matrix m_cam, Axes axes, Vector[] vlist)//Рисуем координатные оси

            {

                  g.SmoothingMode = SmoothingMode.HighQuality;

                  //цвет осей

                  Pen pen1 = new Pen(axes.currColorAxis, 4);

                  //Цвет меток

                  Pen pen2 = new Pen(axes.currColorLoop, 2);

                  //Цвет названия осей

                  SolidBrush color_name_axis = new SolidBrush(Color.White); 

                  System.Drawing.Drawing2D.LineCap p1 = System.Drawing.Drawing2D.LineCap.Flat;

                  System.Drawing.Drawing2D.LineCap p2 = System.Drawing.Drawing2D.LineCap.ArrowAnchor;

                  pen1.StartCap = p1;

                  pen1.EndCap = p2; 
 

                  if(axes.ScaleAxis == true)

                  {

                        axes.lenght_axis = axes.scale*70;

                  }

                  float delta_x = (int)(axes.scale_x*5);//единица деления 

                  Vector[] vlist_local = new Vector[7];

                  //начало координат

                  vlist_local[0] = new Vector(0, 0, 0);

                  //ось X

                  vlist_local[1] = new Vector(axes.lenght_axis, 0, 0);

                  //ось Y

                  vlist_local[2] = new Vector(0, axes.lenght_axis, 0);

                  //ось Z

                  vlist_local[3] = new Vector(0, 0, axes.lenght_axis);

                  //отрицат. ось

                  vlist_local[4] = new Vector(-axes.lenght_axis, 0, 0);

                  vlist_local[5] = new Vector(0, -axes.lenght_axis, 0);

                  vlist_local[6] = new Vector(0, 0, -axes.lenght_axis); 

                  //положит. оси

                  Vector[] vloop_axis_x = new Vector[60];

                  Vector[] vloop_axis_y = new Vector[60];

                  Vector[] vloop_axis_z = new Vector[60];

                  //отрицат. оси

                  Vector[] vloop_axis_negx = new Vector[60];

                  Vector[] vloop_axis_negy = new Vector[60];

                  Vector[] vloop_axis_negz = new Vector[60];

                  //для отображения сетки

                  Vector[] vloop_grid_x = new Vector[60];

                  Vector[] vloop_grid_y = new Vector[60]; 

                  for(int v=0; v<60; v++)

                  {

                        vloop_axis_x[v] = new Vector();

                        vloop_axis_y[v] = new Vector();

                        vloop_axis_z[v] = new Vector(); 

                        vloop_axis_negx[v] = new Vector();

                        vloop_axis_negy[v] = new Vector();

                        vloop_axis_negz[v] = new Vector(); 

                        vloop_grid_x[v] = new Vector();

                        vloop_grid_y[v] = new Vector();

                  } 

                  float d_x, d_y; 

                  for(int i=0; i<7; i++)

                  {

                        vlist_local[i] = vlist_local[i]*m_cam;

                        vlist_local[i] = vlist_local[i]+axes.world_pos;

                        //Переворачиваем ось у

                        vlist_local[i].y = axes.world_pos.y*2-vlist_local[i].y;

                  }

                  float count_x=0, count_y=0, count_z=0;

                  float step_x=1, step_y=1, step_z=1;

                  float count1=0;

                  float count2=0;

                  /*string marking="";

                  bool b = false;

                  int a=1;

                  double e=0;

Информация о работе Построитель графиков на C#