
- •Введение
- •Часть I. Краткие основы Visual c# Глава 1. Основные определения книги
- •1.1. Требования для установки Visual Studio 2005
- •Глава 2. Методика разработки приложений для выполнения расчетов с эффектами анимации
- •Глава 3. Методика разработки приложений на нескольких формах
- •Часть II. Методология проектирования графики и печати на принтере Глава 4. Краткие сведения о графических возможностях Visual Studio
- •Глава 5. Рисование простых линий на форме или элементах управления и печать этих линий
- •Глава 6. Рисование сложных линий и печать всей формы как снимка экрана
- •Глава 7. Рисование заполненных фигур и печать всей формы с предварительным просмотром
- •Глава 8. Рисование текста и печать текстового файла
- •Часть III. Методология вычислений на основе Visual c# с использованием эффектов анимации Глава 9. Методика создания вычислительной системы
- •Глава 10. Арифметические вычисления
- •10.3. Анимация в виде циклического изменения непрозрачности панели
- •Глава 11. Разработка стандартного калькулятора
- •11.3. Анимация в виде циклического изменения цвета формы
- •11.4. Выполнение расчетов
- •Глава 12. Вычисление процентов
- •Глава 13. Степени, корни, логарифмы и факториалы
- •Часть IV. Методология вычислений на основе интеграции Visual c# с другими платформами Глава 14. Использование в Visual c# программ из Excel
- •Глава 15. Вычисление сложных математических выражений
- •Часть V. Интеграция Visual c# с Word Глава 16. Оглавление приложения по использованию методов Word
- •Глава 17. Запуск Word, добавление нового и открытие существующего документа
- •17.3. Выполнение программы
- •Часть VI. Получение расчетных параметров из баз данных Access Глава 18. Оглавление приложения по использованию Access
- •18.1. Алгоритм оглавления и проектирование формы
- •Глава 19. Открытие Access
- •Часть VII. Создание баз данных и интеграция с другими субд Глава 20. Создание баз и наборов данных
- •Глава 21. Архитектура доступа к данным ado.Net
- •Глава 22. Разработка баз данных при помощи шаблонов
- •22.1. Создание проекта sql Server Project
- •Часть VIII. Методология создания графической системы в двухмерном пространстве Глава 23. Алгоритмы и оглавление графической системы
- •Глава 24. График линейной функции
- •Глава 25. Графики типичных функций
- •Глава 26. Рисование при помощи перемещения мыши
- •Глава 27. Рисование линий при помощи нажатия кнопки мыши
- •Глава 28. Рисование прямоугольников и эллипсов при помощи нажатия кнопки мыши
- •Глава 29. Рисование заполненных прямоугольников и эллипсов при помощи нажатия кнопки мыши
- •Глава 30. Непрерывный график-осциллограмма и его проверка при помощи диспетчера задач и файла подкачки
- •Часть IX. Методология создания графической системы в трехмерном пространстве Глава 31. Теория и алгоритмы системы
- •32.1. Основные схемы интеграции
- •Глава 33. Изображение и управление трехмерными объектами в трехмерном пространстве
- •Глава 34. Изображение и управление трехмерными объектами в трехмерном пространстве на Visual Basic для интеграции с Visual c# и другими языками
- •Глава 35. Изображение объектов в трехмерном пространстве на Visual c# по данным из проекта на Visual Basic
- •35.1. Постановка задачи и проектирование формы
- •Глава 37. Изображение и управление поверхностями в трехмерном пространстве
- •Глава 40. Расчет и изображение линий уровня на поверхности
- •Часть X. Методология создания анимационной трехмерной графики на основе новых версий Visual c# и DirectX Глава 44. Методика проектирования неподвижных и подвижных плоских фигур
- •Глава 45. Методика проектирования неподвижных и подвижных пространственных фигур
- •Часть XI. Методология разработки мультимедиа и игр на основе Microsoft Agent Глава 46. Загрузка и установка компонентов Microsoft Agent
- •46.1. Краткие сведения о Microsoft Agent
- •Глава 47. Методика управления мультипликационными персонажами
- •Глава 48. Вывод на экран выступлений и анимаций всех персонажей
- •Глава 49. Методика создания компьютерных игр и мультфильмов
- •49.4. Выполнение программы
- •Глава 50. Пример Интернет-магазина на основе Microsoft Agent
- •Глава 51. Построение графика по точкам эксперимента и интеграция с мультипликационными персонажами ms Agent
- •Часть XII. Методология анимации объектов Глава 52. Оглавление системы программ для анимации объектов
- •52.1. Алгоритм и проект системы
- •Глава 53. Варианты часов с цифровой индикацией, индикаторами прогресса и датой
- •Глава 54. Вращение линии
- •Глава 55. Управляемое вращение линии
- •Глава 56. Управляемое вращение и перемещение фигуры
- •Глава 57. Управляемое заполнение фигур
- •Глава 58. Управляемый мигающий текст
- •Глава 59. Методика изображения летающих предметов
- •Глава 60. Методика анимации градиентного заполнения текста цветом
- •Глава 61. Вращающееся градиентное заполнение фигур цветом
- •Глава 62. Изображение кругов на воде с использованием двойной буферизации
- •Глава 63. Анимация текста в консольном приложении
- •Часть XIII. Методология создания, конвертирования и мультипликации изображений на форме Глава 64. Методика задания, конвертирования и поочередной замены изображений
- •Глава 65. Методика разработки мультипликации
- •Глава 66. Разработка мультипликации при помощи списка рисунков
- •Глава 67. Методика управления цветом изображения
- •Часть XIV. Воспроизведение аудио и видео Глава 68. Оглавление приложения по интеграции Visual c# с Windows Media Player
- •Глава 69. Воспроизведение аудио файлов из приложения Visual с#
- •Глава 70. Воспроизведение видео файлов из приложения Visual c#
- •70.3. Выполнение программы
- •Глава 72. Интеграция Visual c# с браузером Internet Explorer
- •Глава 73. Установка веб-компонентов Windows для веб-программирования на основе asp.Net
- •Часть XVI. Введение в программирование мобильных устройств Глава 74. Программирование портативных и карманных компьютеров
- •Часть XVII. Приложения Visual c# для использования на практике, например, в промышленности Глава 75. Алгоритмы для расчета площади, объема и массы изделий и заготовок
- •75.1. Объектно-ориентированный анализ геометрии изделий
- •Глава 76. Консольное приложение для расчета массы изделий
- •Глава 77. Вычисление массы изделий при помощи формы
- •Часть XVIII. Приложения Visual c# для использования в учебе и науке Глава 78. Ввод в систему свойств материалов для изготовления изделий
- •Глава 79. Математическое моделирование обработки заготовки при помощи аналитических решений
- •Глава 80. Математическое моделирование обработки заготовки при помощи метода конечных элементов
- •Глава 81. Математическое моделирование и графика для типичных техпроцессов
- •Глава 82. Методология учета анизотропии материала при проектировании техпроцесса изготовления изделия
- •Глава 83. Методология проектирования техпроцессов изготовления изделий коробчатой формы
- •Часть XIX. Методология создания и внедрения систем компьютерного проектирования Глава 84. Оптимизация раскроя материалов
- •Глава 85. Система компьютерного проектирования техпроцессов
- •Глава 86. Проектирование заготовительных операций подготовки материала
- •Глава 87. Проектирование операций изготовления заготовок
- •Глава 88. Проектирование операций обработки заготовок
- •Глава 89. Проектирование финишных операций изготовления изделий
- •Часть XX. Передача приложения заказчику Глава 90. Методика передачи приложения пользователю
- •90.1. Этапы разработки программы для установки приложения
- •90.2. Создание проекта для установки приложения
- •Заключение
- •Описание содержимого компакт-диска и схема использования
- •Список литературы
- •Предметный указатель
Глава 63. Анимация текста в консольном приложении
Листинг 63.1. Модуль Module1.cs после записи нашего кода.
using System;
//Подключаем пространство имен Timers:
using System.Timers;
namespace Animated_text_on_console
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
// TODO: Add code to start application here
//
//Вводим таймер, который генерирует событие
//через каждый Interval времени, равный
//3000 миллисекундам или 3 секундам:
System.Timers.Timer myTimer =
new System.Timers.Timer(3000);
myTimer.Elapsed+=
new ElapsedEventHandler(OnTimedEvent);
//Чтобы таймер совершил событие
//только один раз и остановился,
//в следующей строке убираем символы //:
//myTimer.AutoReset = false;
//Запускаем в работу таймер:
myTimer.Enabled = true;
//Выводим сообщение,
//как остановить анимацию:
Console.WriteLine(
"Чтобы остановить анимацию,
нажмите клавиши c + Enter.");
//Организовываем цикл работы таймера
//при помощи оператора while,
//который выключает таймер
//после нажатия клавиш c + Enter:
while(Console.Read()!='c');
}
//Эта процедура выводит анимационное сообщение
//через каждый Interval времени работы таймера:
private static void OnTimedEvent(object source,
ElapsedEventArgs e)
{
//Анимационное сообщение:
Console.WriteLine(
"Введите исходные данные
и нажмите клавишу Enter:");
}
}
}
Аналогично можно разработать программы для циклического вывода на консоль любой строки текста как одного содержания, так и различного содержания. Таким образом, мы закончили раздел по разработке системы из анимационных программ на языке Visual C#. Напомним, что этот же раздел по разработке системы из анимационных программ на другом главном (в мире программирования) языке Visual Basic даны в нашей предыдущей книге [8].
Часть XIII. Методология создания, конвертирования и мультипликации изображений на форме Глава 64. Методика задания, конвертирования и поочередной замены изображений
Листинг 64.1. Метод с нашим кодом для вывода фонового изображения.
private void Form1_Load(object sender, EventArgs e)
{
this.BackgroundImage =
Image.FromFile("D:\\MyDocs\\MyDocs F\\Fig1.jpg");
}
Интересна другая запись нашей строки кода:
this.BackgroundImage =
Image.FromFile(@"D:\MyDocs\MyDocs F\Fig1.jpg");
После старта проекта (Build, Build Solution; Debug, Start Without Debugging) появляется форма с фоновым изображением в виде файла Fig1.jpg (рис. 64.6).
Листинг 64.2. Обработчик щелчка кнопки для вывода фонового изображения.
private void button1_Click(object sender, EventArgs e)
{
this.groupBox1.BackgroundImage =
Image.FromFile("D:\\MyDocs\\MyDocs F\\Fig5.jpg");
}
Теперь после старта проекта и щелчка кнопки предыдущее фоновое изображение Fig1.jpg (листинг 64.1) заменится новым изображением Fig5.jpg (листинг 64.2), показанным на рис. 64.7.
Аналогично можно записать наш код в любой другой метод, например, в обработчик щелчка по форме или по любому другому элементу управления.
Листинг 64.3. Конвертирование, сохранение и вывод изображения.
private void Form1_Load(object sender, EventArgs e)
{
//Загружаем Fig2_1.jpg в объект myImage класса Image:
Image myImage =
Image.FromFile(@"D:\MyDocs\MyDocs F\Fig2_1.jpg");
//Конвертируем Fig2_1.jpg в (.gif) и сохраняем Save:
myImage.Save(@"D:\MyDocs\MyDocs F\Fig2_1.gif",
System.Drawing.Imaging.ImageFormat.Gif);
//Выводим изображение как фоновое для формы:
this.BackgroundImage =
Image.FromFile(@"D:\MyDocs\MyDocs F\Fig2_1.gif");
}
Аналогично для конвертирования изображения Fig2_1.gif из формата (.gif), например, в формат (.png) используется код:
Image myImage =
Image.FromFile(@"D:\MyDocs\MyDocs F\Fig2_1.gif");
myImage.Save(@"D:\MyDocs\MyDocs F\Fig2_1.png",
System.Drawing.Imaging.ImageFormat.Png);
Аналогично конвертируются изображения из одного формата в другой из перечня поддерживаемых форматов на рис. 64.8.
После старта проекта мы увидим форму с фоновым изображением в другом формате (рис. 64.9).
Теперь в файл Form1.cs необходимо написать нашу часть кода. Сначала в любом месте внутри класса Form1 (например, ниже свернутого блока кода) объявляем массив изображений класса Image и глобальные переменные:
//Массив из 8 изображений (индекс 0 не используем):
Image[] myArrayImages = new Image[9];
//Объявляем и инициализируем целочисленные переменные:
int j = 0;
int k = 1;
Дважды щелкаем по Form1 в режиме проектирования (или в панели Properties на вкладке Events дважды щелкаем по имени события Load) и в появившийся шаблон записываем наш код, после чего метод принимает такой вид.
Листинг 64.4. Метод Form1_Load для загрузки изображений.
private void Form1_Load(object sender, EventArgs e)
{
//Из графических файлов 8 рисунков формата (.jpg)
//заполняем массив myArrayImages[9]:
myArrayImages[1] =
Image.FromFile("D:\\MyDocs\\MyDocs F\\Fig1.jpg");
myArrayImages[2] =
Image.FromFile("D:\\MyDocs\\MyDocs F\\Fig2.jpg");
myArrayImages[3] =
Image.FromFile("D:\\MyDocs\\MyDocs F\\Fig3.jpg");
myArrayImages[4] =
Image.FromFile("D:\\MyDocs\\MyDocs F\\Fig4.jpg");
myArrayImages[5] =
Image.FromFile("D:\\MyDocs\\MyDocs F\\Fig5.jpg");
myArrayImages[6] =
Image.FromFile("D:\\MyDocs\\MyDocs F\\Fig6.jpg");
myArrayImages[7] =
Image.FromFile("D:\\MyDocs\\MyDocs F\\Fig7.jpg");
myArrayImages[8] =
Image.FromFile("D:\\MyDocs\\MyDocs F\\Fig8.jpg");
}
Аналогично в приложение загружаются другие массивы, если мы хотим использовать чередование серии одних изображений сериями других. Чтобы подключить к работе таймер, дважды щелкаем значок timer1 (ниже формы в режиме проектирования). Появляется файл Form1.cs с шаблоном, который после записи нашего кода принимает следующий вид.
Листинг 64.5. Метод для компонента Timer1.
private void timer1_Tick(object sender, EventArgs e)
{
//Выводим изображение в качестве фонового PictureBox:
pictureBox1.BackgroundImage = myArrayImages[j];
//Организовываем цикл для восьми рисунков:
j = j + k;
if (j == 8)
{
//От последнего рисунка переходим к первому:
k = -8;
}
else if (j == 0)
{
//Задаем первый рисунок для начала цикла:
k = 1;
}
}
Запускаем проект: Build, Build Solution; Debug, Start Without Debugging.
В ответ Visual C# выполняет программу и на рабочий стол выводит Form1 в режиме выполнения (рис. 64.9). Внутри элемента pictureBox осуществляется поочередная замена одного рисунка следующим за интервал времени в 1000 миллисекунд, который мы установили с помощью свойства Interval в панели Properties для компонента Timer (Таймер). Частота смены изображений регулируется за счет изменения значения свойства Interval. Вместо элемента pictureBox в качестве окна мы можем использовать другой элемент, например, Panel или GroupBox, или какой-либо еще.
Таким образом, по разработанной в данной главе методике можно спроектировать на экране циклическую замену любых изображений, заданных в виде графических файлов.
В следующей главе мы перейдем к созданию более сложных приложений типа мультипликаций.