Отчет по практике в IT компания «RTI - Lab»

Автор: Пользователь скрыл имя, 09 Июня 2013 в 14:42, отчет по практике

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

Мльтитач или сенсорные столы - это новый продукт на российском рынке, но, тем не менее, данное оборудование уже зарекомендовало себя как очень интересное бизнес-решение для компаний, занимающихся продажей товаров и услуг. Данные столы можно использовать для различных целей. Таких как:
1. Развлечения (игры, интернет – серфинг и т.д.);
2. Проведение презентаций;
3. Работа с мультимедиа (просмотр фото, видео) и т.д.

Оглавление

Введение 3
Раздел I. Постановка задачи 4
Деятельность предприятия 4
Постановка задачи 6
Раздел II. Решение поставленной задачи 7
Инструментальные средства и технологии 7
Реализация 8
Заключение 21
Список использованных источников 22

Файлы: 1 файл

защита ушков.docx

— 5.77 Мб (Скачать)

 

<Grid.RowDefinitions>

<RowDefinition Height="Auto"/>

<RowDefinition Height="Auto"/>

</Grid.RowDefinitions>

<TextBlock.RenderTransform>

<TransformGroup>

<TranslateTransform X="0" Y="0" x:Name="transX"/>

</TransformGroup>

</TextBlock.RenderTransform>

 

После структуры самой галереи идут триггеры запускающие анимации.

Первый триггер проверяет свойство IsMouseOver и запускает две анимации - DoubleAnimation (при наведении на картинку надпись немного смещается) и ColorAnimation (при наведении на картинку цвет надписи также меняется на голубой). После того как пользователь отвел  мышку с картинки запускаются  две обратные анимации, возвращающие текстовые элементы в исходное состояние.

 

<Trigger Property="IsMouseOver" Value="True">

<Trigger.EnterActions>

<BeginStoryboard>

<Storyboard>

<DoubleAnimation Storyboard.TargetName="transX" Storyboard.TargetProperty="X" To="10" Duration="00:00:00.3"/>

<ColorAnimation Storyboard.TargetName="desc" Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color)" To="#FF32EBFB" Duration="00:00:00.3"/>

</Storyboard>

</BeginStoryboard>

</Trigger.EnterActions>

<Trigger.ExitActions>

<BeginStoryboard>

<Storyboard>

<DoubleAnimation Storyboard.TargetName="transX" Storyboard.TargetProperty="X" To="0" Duration="00:00:00.3"/>

<ColorAnimation Storyboard.TargetName="desc" Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color)" To="#FF1C1C1C" Duration="00:00:00.3"/>

</Storyboard>

</BeginStoryboard>

</Trigger.ExitActions>

</Trigger>

 

Второй триггер проверяет свойство IsSelected. Сначала он устанавливает  видимым кнопку closeButton. Затем меняет свойство Panel.ZIndex на 1, чтобы выбираемый элемент ListBoxItem оказался поверх других. И наконец запускает анимации, первые две из которых изменяют размеры контейнера, увеличивая его при открытии картинки, третья изменяет угол трансформации контейнера, в результате чего создается красивая анимация разворачивания картинки, а четвертая и пятая анимация устанавливают контейнер по центру экрана.

 

<Trigger Property="IsSelected" Value="True">

<Setter Property="Visibility" TargetName="closeButton" Value="Visible"/>

<Setter Property="Panel.ZIndex" Value="1"/>

<Trigger.EnterActions>

<BeginStoryboard>

<Storyboard>

<DoubleAnimation Storyboard.TargetName="img" Storyboard.TargetProperty="Height" To="600" Duration="00:00:00.3"/>

<DoubleAnimation Storyboard.TargetName="img" Storyboard.TargetProperty="Width" To="800" Duration="00:00:00.3"/>

<DoubleAnimation Storyboard.TargetName="transRotation" Storyboard.TargetProperty="Angle" To="0" Duration="00:00:00.3"/>

<DoubleAnimation Storyboard.TargetName="ImgTransX" Storyboard.TargetProperty="X" To="180" Duration="00:00:00.3"/>

<DoubleAnimation Storyboard.TargetName="ImgTransX" Storyboard.TargetProperty="Y" To="-200" Duration="00:00:00.3"/>

</Storyboard>

</BeginStoryboard>

</Trigger.EnterActions>

<Trigger.ExitActions>

<BeginStoryboard >

<Storyboard >

<DoubleAnimation Storyboard.TargetName="img" Storyboard.TargetProperty="Height" Duration="00:00:00.3"/>

<DoubleAnimation Storyboard.TargetName="img" Storyboard.TargetProperty="Width" Duration="00:00:00.3"/>

<DoubleAnimation Changed="DoubleAnimation_Changed" FillBehavior="Stop" Storyboard.TargetName="transRotation" Storyboard.TargetProperty="Angle" Duration="00:00:00.3"/>

<DoubleAnimation Storyboard.TargetName="ImgTransX" Storyboard.TargetProperty="X" To="0" Duration="00:00:00.3"/>

<DoubleAnimation Storyboard.TargetName="ImgTransX" Storyboard.TargetProperty="Y" To="0" Duration="00:00:00.3"/>

</Storyboard>

</BeginStoryboard>

</Trigger.ExitActions>

</Trigger>

В итоге получим следующую галерею:

При помощи страницы настроек можно изменять такие значения как:

  • Начальные размеры изображений;
  • Конечные размеры изображений;
  • Координаты точки вокруг которой крутится «веер»;
  • Угол поворота изображения.

 

Так же помимо, приведенного выше, шаблона были разработаны следующие вариации:

  1. «Колесо обозрения» - особенностью данного шаблона является использование анимации на основе пути. Это значит, что, загруженные фотографии, двигаются по заданной траектории (в данном случае окружности).

  1. «Линия» – особенностью является возможность смены расположения загруженных фотографий с горизонтального на вертикальное. 
     
     
     
  2. «Плитка» - особенностью данного шаблона является возможность перелистывать загруженные фотографии, что в свою очередь позволяет загружать любое кол-во фотографий, не повлияв на графическое изображение. 

 

Подготовка дипломного проекта

В ходе преддипломной практики, параллельно с основным заданием, велась разработка дипломного проекта.

Были изучены следующие  методы градиентной оптимизации:

  • Метод сопряженных градиентов
  • Метод Ньютона
  • Квазиньютоновский метод

 

Метод сопряженных градиентов

 Основной принцип метода - организация поиска вдоль сопряженных направлений, используя квадратичную аппроксимацию целевой функции и значение градиента.

Операции аргумента проводятся по формуле:

x(k + 1) = x(k) + a(k)•s(x(k)).

Направление поиска на каждом шаге определяется с помощью формулы  Флетчера-Ривса:

s(k) = -g(k) +

•s(k - 1), где g(k) – градиент.

Направление s(k) будет сопряжено со всеми ранее построенными направлениями поиска.

Если  функция f(x1, x2, ... , xN) квадратична, то для нахождения точки экстремума требуется определить N-1 таких направлений и провести поиски вдоль каждой прямой. Если f(x) не является квадратичной, то количество поисков возрастет.

Метод Ньютона

Данный метод использует информацию о производных высших (в нашем  случае - второго) порядков целевой  функции. Эта информация появляется при квадратичной аппроксимации  целевой функции, когда при её разложении в ряд Тейлора учитываются  члены ряда до второго порядка  включительно. Вычисления производятся по формуле:

где – матрица Гессе, а – градиент.

Матрица Гессе вычисляется по формуле:

В случае, когда матрица Гессе  положительно определена, то направление  поиска по методу Ньютона оказывается  направлением спуска.

 

Квазиньютоновский метод

Данный  метод обладает положительными чертами  метода Ньютона, однако, использует информацию только о первых производных. Приближение  к очередной точке задается формулой:

x(k+1) = x(k) + a(k)s(k)

Направление поиска определяется как

s(k) = -A(k)•Ñ¦(х(k))

, где A(k) - матрица порядка N´N (метрика), вычисляющаяся по формуле Девидона-Флетчера-Пауэлла:

A(k) = A(k-1) +Ac(k-1)

, где

Ac(k-1) =

Dg(k) = g(k) - g(k-1) - изменение градиента,

Dx(k) = x(k) - x(k-1) - изменение аргумента.

Матрицу A(0) удобно выбирать единичной.

 

Руководство пользователя

 

Рис.1 Главная  страница

 

На главной странице, перед  тем как произвести вычисления, пользователю предлагается выбрать одну из трех реализованных функций.

Затем пользователю предлагается выбрать один из двух методов реализованных  в данной программе. Также предлагается ввести начальные координаты (точка  x0) и свободные коэффициенты, если это необходимо, в случае если свободных коэффициентов нет, поля ввода становятся недоступными (рис. 2).

Рис.2 Главная  страница для функции без свободных  коэффициентов

 

При нажатии кнопки «Выполнить»  производится пошаговый расчет для  выбранного метода. Результаты вычислений на каждом шаге выводятся  в dataGridView (рис.3). В котором первый столбец показывает номер итерации, второй и третий столбцы это координаты градиента функции на конкретной итерации (g[i].x1,g[i].x2), четвертый и пятый столбцы отображают координаты направления поиска (s[i].x1,s[i].x2), шестой столбец выводит вспомогательный коэффициент alpha, последние два столбца, это координаты искомой точки на каждой итерации.

 

Рис.3 Вычисления для метода сопряженных градиентов

 

В случае с квазиньютоновским  методом помимо основных значений которые  выводятся в dataGridView2, в dataGridView3 выводятся значения метрики используемые для вычислений (рис.4). В котором каждый из столбцов отвечает за один из коэффицентов матрицы A:

Рис.4 Вычисления для квазиньютоновского метода

 

Заключение

В ходе практики были разработаны и внедрены шаблоны галерей. Так же были получены следующие навыки и опыт:

    • Опыт работы как будущего специалиста в сфере информационных технологий
    • Опыт программирования на платформе Windows Presentation Foundation.

Были изучены технологии создания анимации на платформе Windows Presentation Foundation. А именно анимация на основе пути, в основе которой лежит траектория движения, задаваемая объекту.

Так же было рассмотрен и  использован язык разметки XAML, как наиболее удобный для перспективы развития проекта (так как легко интегрируется в другие программы, например для дизайна).

Данный проект, может быть использован клиентами фирмы  для демонстрации их услуг. В дальнейшем в проект может быть добавлено:

  1. Использование в качестве используемого материала не только фото, но и видео.
  2. Разработка новых шаблонов, используя услуги профессионального дизайнера.
  3. Плавный переход между шаблонами в ходе презентации.
  4.  

Список  использованных источников

  1. Электронный учебник программирования на .net

http://www.professorweb.ru

  1. Статья «Введение в WPF»  
    http://msdn.microsoft.com/ru-ru/library/aa970268.aspx
  2. Статья «Введение в возможности 3D на WPF» http://www.thevista.ru/page.php?id=6316

Тюмень - 2013

 


Информация о работе Отчет по практике в IT компания «RTI - Lab»