Главная страница
Навигация по странице:

  • 28.2. Класс System.Console

  • 28.3. Класс System.String

  • Лабораторная работа циклы. Поволжский государственный университет телекоммуникаций и информатики


    Скачать 3.57 Mb.
    НазваниеПоволжский государственный университет телекоммуникаций и информатики
    АнкорЛабораторная работа циклы
    Дата08.10.2022
    Размер3.57 Mb.
    Формат файлаpdf
    Имя файлаLR_CSharp_Akchurin_2010.pdf
    ТипДокументы
    #721430
    страница7 из 7
    1   2   3   4   5   6   7
    27.
    Графика, анимация
    Предмет исследований

    Графические средства C#.

    Средства анимации.
    Контрольные вопросы
    Анимация.
    1.
    Принцип создания движения.
    2.
    Как стирается текущий объект.
    3.
    Назначение компонентв Timer
    4.
    От чего зависит скорость движения объекта
    5.
    Задание. Создать программу демонстрации анимации: движение самолета на неба. Проект – WindowsForm приложение. В программе используются два файла растровых картинок, которые надо загрузить в ту же папку, где находит- ся проект приложения:

    фон - sky, файл sky.bmp,

    движущийся объект - самолет, файл plane.bmp.
    Эти файлы находятся в папке УМД к ЛР.
    При анимации осуществляются действия:

    В форму загружается фоновая картинка.

    В стартовой позиции накладывается самолет.

    Через интервал времени, задаваемый встроенным в форму таймером, самолет стирается.

    Вычисляется новые координаты.

    По ним накладывается самолет в новой позиции.
    Пример. Создаем форму приложения.

    149
    Она содержит два компонента:

    Timer1 – таймер для определения времени, влияющего на скорость поле- та самолета. Время задается в свойстве таймера Интервал.

    Form1 – сама форма для отображения картинки. В ее свойствах задаем text = Полет. В форме будет отображаться фон – небо. В проект включа- ем файл sky.bmp. В окне свойств формы определим свойство
    BackgroundImage. Запускаем браузер выьора ресурса, в котором выберем файл sky.bmp из ресурсов проекта.
    Скорость полета самолета определяем, как произведение расстояния, прой- денного за один интервал таймера, на длительность интервала.

    150
    Листинг программы using
    System; using
    System.Drawing; using
    System.Windows.Forms; namespace
    Plane
    { public partial class
    Form1
    :
    Form
    {
    Bitmap sky = new
    Bitmap
    (
    @"G:\sky.bmp"
    );
    // небо
    Bitmap plane = new
    Bitmap
    (
    @"G:\plane.bmp"
    );
    // самолет
    Graphics g;
    // рабочая графическая поверхность int dx;
    // приращение координаты X,определяет скорость полета
    Rectangle rct;
    // область, в которой находится самолет
    Boolean demo = true
    ;
    // true - самолет скрывается в облаках public
    Form1()
    {
    InitializeComponent(); plane.MakeTransparent();
    // прозрачный фон у самолета
    // задать размер формы в соответствии с размером sky

    151 this
    .ClientSize = new
    System.Drawing.
    Size
    ( new
    Point
    (BackgroundImage.Width,
    BackgroundImage.Height));
    // будем использовать BackgroundImage формы g =
    Graphics
    .FromImage(BackgroundImage);
    // исходное положение самолета rct.X = -40; rct.Y = 20; rct.Width = plane.Width; rct.Height = plane.Height;
    // скорость полета dx = 2;
    // скорость полета - 2 пикселя/тик_таймера timer1.Interval = 20; timer1.Enabled = true
    ;
    } private void timer1_Tick(
    object sender,
    EventArgs e)
    {
    // стираем самолет копированием фона на рабочую поверхность g.DrawImage(sky,
    new
    Point
    (0,0));
    // изменяем положение самолета if
    (rct.X < this
    .ClientRectangle.Width) rct.X += dx; else
    {
    // если граница, задаем заново положение самолета rct.X = -40; rct.Y = 20;
    }
    // рисуем самолет на рабочей поверхности g.DrawImage(plane, rct.X, rct.Y);
    // Метод Invalidate(rct) - перерисовка области rct if
    ( ! demo ) this
    .Invalidate(rct);
    // обновить область, где самолет else
    {
    // если объект вне области rct, он не виден
    Rectangle reg = new
    Rectangle
    (20,20,sky.Width - 40,

    152 sky.Height - 40);
    // показать обновляемую область g.DrawRectangle(
    Pens
    .Black,reg.X ,reg.Y , reg.Width-1, reg.Height-1); this
    .Invalidate(reg);
    // обновить область
    }
    } private void
    Form1_Load(
    object sender,
    EventArgs e)
    {
    }
    }
    }
    При запуске видим летящий самолет.

    153
    28.
    Приложения
    28.1.
    Класс System.Math
    Поля класса
    Вызов
    Функция
    Math.E
    Значение свойства E примерно равно 2,718.
    Math.LN10
    Значение свойства LN10 примерно равно 2,302.
    Math.LN2
    Значение свойства LN2 примерно равно 0,693.
    Math.LOG10E
    Свойство LOG10E (константа) приблизительно равно
    0,434.
    Math.LOG2E
    Значение свойства LOG2E (константа) приблизитель- но равно 1,442.
    Math.SQRT1_2
    Свойство SQRT1_2 (константа) приблизительно рав- но 0,707.
    Math.SQRT2
    Свойство SQRT2 (константа) приблизительно равно
    1,414.
    Math.PI
    Свойство PI является константой, приблизительно равной 3,14159.
    Методы класса. Имена с заглавной буквы.
    Вызов
    Функция
    Abs(x)
    Абсолютное значение
    Acos(x)
    Обратный косинус
    Asin(x)
    Обратный синус
    Atan(x)
    Обратный тангенс
    Atan2(x,y)
    Обратный тангенс. Atan(x/y)
    BigMul(x,y)
    Умножает два 32-битовых числа.
    Ceiling(x)
    Округление вверх
    Cos(x)
    Косинус
    Cosh(x)
    Косинус гиперболический
    DivRem(x,y)
    Остаток от x/y, числа целые
    Exp(x)
    Экспонента = e x
    Floor(x)
    Округление вниз
    IEEERemainder(x,y)
    Остаток от x/y, числа вещественные
    Log(x)
    Натуральный логарифм
    Log(x,y)
    Логарифм от x по основанию y
    Log10(x)
    Логарифм от x по основанию 10
    Max(x,y)
    Максимальное из двух

    154
    Min(x,y)
    Минимальное из двух
    Pow(x,y)
    Возводит x в любую степень y
    Round(x)
    Округление до ближайшего целого
    Sign(x)
    Знак числа
    Sin(x)
    Синус
    Sinh(x)
    Синус гиперболичгский
    Sqrt(x)
    Квадратный корень
    Tan(x)
    Тангенс
    Tanh(x)
    Тангенс гиперболичгский
    Truncate(x)
    Отсечение дробной части
    28.2.
    Класс System.Console
    Методы класса
    Вызов
    Функция
    Beep()
    Гудок в консоли
    Beep(f,t)
    Гудок в консоли с частотой f в течение t секунд
    Clear
    Стирание буфера консоли
    Read()
    Чтение символа
    ReadLine()
    Чтение строки символов
    Write(String, O1,…,O4)
    Вывод в консоль текстового представления объ- ектов Ob (до 4-ех) в формате String
    WriteLine(String, O1,…,O4) То же самое и перевод строки
    28.3.
    Класс System.String
    Методы класса
    Вызов
    Действие
    Clone()
    Возвращает ссылку на экземпляр класса
    Copy(str)
    Копирование строки str
    Concat(strA, strB)
    Сцепление строки strA со строкой strB
    Compare(strA, indA, StrB, indB)
    Сравнивает подстроки строк strA strB в пози- циях indA и indB strA.CompareTo(strB)
    Сравнивает строку strA со строкой strB
    Replace(strA, strB)
    Заменяет строку strA на строку strB
    Remove(Ind, Count)
    Удаляет Count знаков после позиции Ind strA.Insert(Ind, strB)
    Вставляет строку strB в строку strA с позиции ind
    Equals(strA, strB)
    Проверка совпадения строк strA и strB

    155
    ToCharArray(str)
    Возвращает массив символов строки str str.GetHashCode()
    Возвращает хэш-код для этой строки str.Length
    Возвращает число знаков в str str.ToLower()
    Копия str в нижнем регистре str.ToUpper()
    Копия str в верхнем регистре
    1   2   3   4   5   6   7


    написать администратору сайта