Создание видеокурса по фехтованию Выполнил: Студент гр.20510/1 ФМФ Александров Сергей
Пример движения: Укол в грудную клетку(Эстокада) Этапы движения: 1)Начальная позиция фехтовальщика: Обратите внимание как расположены ноги фехтовальщика: основной вес тела приходиться на правую ногу, левая нога под углом 45 градусов относительно направления удара. Такая позиция придаёт устойчивость и позволяет с легкостью осуществить укол
2)Конечная позиция фехтовальщика: Ноги широко расставлены. Удар наносится под углом, а не по прямой(это очень важно)
3)Движение целиком (видео):
5)Подробное изучение колющего удара(видео):
Математическая модель руки фехтовальщика Выполнил: Студент гр.30510/1 ФМФ Дзенушко Дайнис
Цель работы Создать математическую модель, которая по заданным параметрам (углам в суставах, координатам плеча) восстанавливает положение руки и приходит в него из любого положения (с визуализацией на языке C#)
Степени свободы Наша модель руки имеет 9 степеней свободы: 2 поступательное движение плеча (вперед/назад; вверх/вниз) 3 плечевой сустав (сферический шарнир) 1 локтевой сустав 1 вращение кистью вокруг своей оси 2 запястье (2 перпендикулярных цилиндрических шарнира)
Задание поворотов
Кватернионы Кватернион - аналог комплексных чисел распространенный на 4-х мерное пространство.
Полезные формулы Где w – скаляр, v – вектор - кватернион поворачивающий на угол a вокруг вектора v - сопряжение - норма - обратный кватернион
Поворот вектора Для того чтобы повернуть вектор используя кватернионы необходимо: Превратить вектор r в кватернион: Умножить на кватернион Для этого нам нужна формула умножения кватернионов Теперь просто отбрасываем скалярную часть (w) кватерниона R и получаем повернутый вектор
Реализация вращения Для визуализации вместо того чтобы поворачивать руку на небольшие углы а потом из нового положения поворачивать ее дальше, было решено поворачивать руку на каждом шаге из начальной точки траектории с каждым шагом на все большие углы.
Реализация в пакете MATLAB
Структура интерфейса программы (на языке С#) Интерфейс реализован на основе вкладок (TabControl).
Вкладка Graph Данная вкладка содержит визуализацию нынешнего положения руки и обладает следующим функционалом: вращение камеры и Zoom. В ней работают комбинации клавиш: Up/Down – вращение вокруг горизонтальной оси Left/Right – вращение вокруг вертикальной оси Ctrl + Up/Down/Left/Right – ускоренное вращение +/- (OemPlus/OemMinus) – это Zoom
Вкладка Settings Данная вкладка отвечает за настройку параметров отображения модели.
Программная реализация 3D-графики Интерфейс программы реализован при помощи библиотеки WPF (Windows Presentation Foundation) и встроенного в Microsoft Visual Studio редактора языка XAML.
Элемент Viewport3D Графическое содержимое 3-D в приложении WPF инкапсулировано в элементе Viewport3D. Графическая система рассматривает Viewport3D как двухмерный визуальный элемент. Viewport3D - окно просмотра трехмерной сцены.
Рисование объектов в 3-D
Манипуляторы
Последние модификации ver_ : Сохранение настроек отображения модели в бинарный файл Вращение отдельных частей модели Использование кватернионов вместо тензоров поворота Оптимизация вращения модели
Ближайшие модификации Оптимизация вычислений связанных с вращением Разделение отображения результатов и вычислений Подготовка кода программы к переходу к общему случаю манипулятора Создание интерфейса, позволяющего создавать модель и задавать движения