Introduction.pptx
- Количество слайдов: 20
Компьютерная графика Вводная лекция Кафедра ИТ ПМи. К, Сентябрь 2012
Структура курса • Более точное название курса: «Алгоритмы машинной графики» – Лекции – Практические занятия • Возможные языки: C++, C#, F#, Java. Script/HTML 5, Delphi, Python • Другие: по согласованию • Вид заданий – написание программ (основные баллы) – решение задач (? ) – бонусные задания (? ) • Форма контроля: зачет, >= 50 баллов
Некоторая литература • С# – Э. Троелсен. Язык программирования C# 2010 и платформа. NET 4 – Д. Скит C# Программирование для профессионалов – Ч. Петцольд. Программирование с использованием Microsoft Windows Forms • Компьютерная графика – Семенов А. Б. Основы компьютерной графики: Учеб. пособие. – Тверь: Твер. гос. ун-т, 2007. – 136 с. : ил.
Обзор С# и Windows Forms
Базис • 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 short struct uint ulong ushort
Референсные типы • • • class interface delegate object string
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 + 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 – Подключается с помощью ключевого слова using • *. cs file • Assembly – Аналог динамической библиотеки (не во всех случаях) – Указывается в поддереве References проекта • Domain (of assemblies)
Структуры данных • Одномерные массивы – 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
Коллекции (пример) static void Count. Letters(Dictionary
Математические функции • • • Стастические методы класса Math. Cos Math. Sin Math. Abs Math. Sqrt Math. E, Math. PI и другие
Часто используемые классы • Интерфейс • 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, …), вручную вызывается 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. From. Argb(0 x. FF, 0, 0) • Предустановленные перья – Brushes. Red, Brushes. White – Pens. Black, Pens. Green
Работа с растрами • Некоторые применения – Обработка изображения – Двойная буферизация
Пример: Grayscale картинки brightness = 0. 3 * Red + 0. 59 * Green + 0. 11 * Blue