Практика «Визуализация»
В том же проекте доработайте файл VisualizerTasks.cs, чтобы заработала визуализация.
-
В методе KeyDown сделайте так манипулятор реагировал на клавиши QASW таким образом:
- по Q увеличивает угол Shoulder на небольшую величину, а по A — уменьшает;
- по W увеличивает угол Elbow на небольшую величину, а по S — уменьшает;
- при любых изменениях пересчитывает Wrist по формуле Wrist = - Alpha - Shoulder - Elbow;
-
В методе MouseMove менял бы X и Y в соответствии со значением из события. Имейте в виду, что ось Y в окне направлена вниз, а в математике — вверх. Поэтому координаты мыши нужно преобразовывать из оконной системы координат в логическую, а при отрисовке наоборот. X и Y в итоге должны хранить логические координаты указателя мыши, относительно shoulderPos — координат единственного неподвижного сустава. Преобразовать оконные координаты в логические и наоборот можно с помощью пары готовых функций ConvertMathToWindow и ConvertWindowToMath.
-
В методе MouseWheel добавить обработку прокрутки колеса мыши. Оно должно менять Alpha.
-
В методе UpdateManipulator вызвать ManipulatorTasks.MoveManipulatorTo и обновить значения Shoulder, Elbow и Wrist (это понадобится в последней задаче). UpdateManipulator нужно вызывать после каждого изменения X, Y или Alpha, то есть в методах MouseMove и MouseWheel.
-
В методе DrawManipulator допишите рисование манипулятора. Нарисуйте каждый сегмент манипулятора отрезком прямой, а каждый сустав — окружностью. Координаты сустава получите методом AnglesToCoordinatesTasks.GetJointPositions. Не забудьте преобразовать логические координаты в оконные.
При запуске проекта в результате вы сможете управлять углами сгиба суставов манипулятора с помощью клавиатуры. А после выполнения следующих заданий, манипулятор должен будет следовать за курсором мыши.
Купить решение:
Ваш Email (на него будет отправлен ответ)
Продолжая, вы соглашаетесь с пользовательским соглашением
Возможны трудности с доставкой сообщений на Gmail
Практика, практика и еще раз практика!
Войдите или зарегистрируйтесь, чтобы отвечать на тесты и решать задачи.