Скачать презентацию Компьютерная графика Вводная лекция Кафедра ИТ ПМи К Скачать презентацию Компьютерная графика Вводная лекция Кафедра ИТ ПМи К

Introduction.pptx

  • Количество слайдов: 20

Компьютерная графика Вводная лекция Кафедра ИТ ПМи. К, Сентябрь 2012 Компьютерная графика Вводная лекция Кафедра ИТ ПМи. К, Сентябрь 2012

Структура курса • Более точное название курса: «Алгоритмы машинной графики» – Лекции – Практические Структура курса • Более точное название курса: «Алгоритмы машинной графики» – Лекции – Практические занятия • Возможные языки: C++, C#, F#, Java. Script/HTML 5, Delphi, Python • Другие: по согласованию • Вид заданий – написание программ (основные баллы) – решение задач (? ) – бонусные задания (? ) • Форма контроля: зачет, >= 50 баллов

Некоторая литература • С# – Э. Троелсен. Язык программирования C# 2010 и платформа. NET Некоторая литература • С# – Э. Троелсен. Язык программирования C# 2010 и платформа. NET 4 – Д. Скит C# Программирование для профессионалов – Ч. Петцольд. Программирование с использованием Microsoft Windows Forms • Компьютерная графика – Семенов А. Б. Основы компьютерной графики: Учеб. пособие. – Тверь: Твер. гос. ун-т, 2007. – 136 с. : ил.

Обзор С# и Windows Forms Обзор С# и Windows Forms

Базис • C# - мультипарадигменный язык – Объектно- ориентированный, императивный – Функциональный (lambda expressions, Базис • C# - мультипарадигменный язык – Объектно- ориентированный, императивный – Функциональный (lambda expressions, closures) – Рефлексивный и обобщенный История версий: • • С# 1. 0 , 2002, . Net Framework 1. x C# 2. 0, 2005, . Net Framework 2. x C# 3. 0, 2007 , . Net 3. x, Visual studio 2008 C# 4. 0, 2010, . Net 4. x, Visual Studio 2010 / 2012

Типы значения • • bool byte char decimal double enum float int long sbyte Типы значения • • bool byte char decimal double enum float int long sbyte short struct uint ulong ushort

Референсные типы • • • class interface delegate object string Референсные типы • • • class interface delegate object string

Hello world application using System; using System. Drawing; using System. Windows. Forms; private void Hello world application using System; using System. Drawing; using System. Windows. Forms; private void Button_Click (object sender, Event. Args e) { Message. Box. Show ("Button Clicked!"); } } public class Hello. World : Form { static public void Main () { Application. Run (new Hello. World ()); } public Hello. World () { Button b = new Button (); b. Text = "Click Me!"; b. Click += new Event. Handler (Button_Click); Controls. Add (b); }

Передача параметров в методы • Без ключевых слов – Типы значения копируются – Для Передача параметров в методы • Без ключевых слов – Типы значения копируются – Для типов объектов копируется только ссылка, сам объект не копируется • С ключевыми словами – ref - аналог оператора & в C++ – out - аналог ref, не требует инициализации аргумента

Пример public void Add(int a, int b, out int c) { c = a Пример public void Add(int a, int b, out int c) { c = a + b; } static void Main(string[] args) { int a = 2; int b = 3; int c; Add(a, b, out c); Console. Write. Line(c); }

Логические единицы C# • class / partial class • namespace – Подключается с помощью Логические единицы C# • class / partial class • namespace – Подключается с помощью ключевого слова using • *. cs file • Assembly – Аналог динамической библиотеки (не во всех случаях) – Указывается в поддереве References проекта • Domain (of assemblies)

Структуры данных • Одномерные массивы – float[] array = new float[10]; – float[] array Структуры данных • Одномерные массивы – float[] array = new float[10]; – float[] array = new float[]{ 2 f, 3 f, 4 f, 5. 25 f}; • Многомерные массивы – float[][] array 2 D = new float[10][]; //название? float[0] = new float[2]; float[1] = new float[3]; – float[, ] array 2 D = new float[10, 10]; //название? • Функции – Array. Length, Array. Sort

Коллекции (некоторые) • Пространство имен using System. Collections. Generic • • List<T> Queue<T> Stack<T> Коллекции (некоторые) • Пространство имен using System. Collections. Generic • • List Queue Stack Dictionary

Коллекции (пример) static void Count. Letters(Dictionary<char, int> dictionary, string s) { for (int i Коллекции (пример) static void Count. Letters(Dictionary dictionary, string s) { for (int i = 0; i < s. Length; i++) if (!dictionary. Contains. Key(s[i])) dictionary. Add(s[i], 1); else dictionary[s[i]]++; } string str = "mama"; Dictionary dictionary = new Dictionary(); Count. Letters(dictionary, str);

Математические функции • • • Стастические методы класса Math. Cos Math. Sin Math. Abs Математические функции • • • Стастические методы класса Math. Cos Math. Sin Math. Abs Math. Sqrt Math. E, Math. PI и другие

Часто используемые классы • Интерфейс • Form, Button, Label, Checkbox, List. Box, Radio. Button, Часто используемые классы • Интерфейс • Form, Button, Label, Checkbox, List. Box, Radio. Button, Menu. Strip • Растры • Bitmap, Bitmap. Data • Рисование • Graphics, Pen, Brush, Point, Rectangle • Время • Timer, Date. Time, Time. Span

Рисование примитивов • класс Graphics, создание – Form. Create. Graphics() – On. Paint(Graphics g, Рисование примитивов • класс Graphics, создание – Form. Create. Graphics() – On. Paint(Graphics g, …), вручную вызывается Form. Invalidate(), Form. Refresh – Graphics. From. Image(Image i) • Методы – Draw. Line, Draw. Image, Fill. Rectangle, Draw. Ellipse, Draw. Rectangle, Fill. Ellipse, итд.

Рисование примитивов • Цвета – класс Color – Color. Red, Color. Blue, и. т. Рисование примитивов • Цвета – класс Color – Color. Red, Color. Blue, и. т. д – Color. From. Argb(0 x. FF, 0, 0) • Предустановленные перья – Brushes. Red, Brushes. White – Pens. Black, Pens. Green

Работа с растрами • Некоторые применения – Обработка изображения – Двойная буферизация Работа с растрами • Некоторые применения – Обработка изображения – Двойная буферизация

Пример: Grayscale картинки brightness = 0. 3 * Red + 0. 59 * Green Пример: Grayscale картинки brightness = 0. 3 * Red + 0. 59 * Green + 0. 11 * Blue