Регистрация
Краснодар
Эксперты сайта «Всё сдал!» проводят работу по подбору, обработке и структурированию материала по предложенной заказчиком теме. Результат данной работы не является готовым научным трудом, но может служить источником для его написания.

Решение задач «Манипулятор»,
программирование на СИ в Краснодаре

Эта работа успешно выполнена на онлайн-сервисе помощи студентам «Всё сдал!»
программирование на СИ
Манипулятор
ID (номер) заказа
2957536
Тип задания
Решение задач
Предмет
программирование на СИ
Статус
Заказ выполнен
Текст задания
1. В первой задаче вам нужно по величине углов shoulder, elbow и wrist вычислить координаты соответствующих суставов. Для этого в классе AnglesToCoordinatesTask реализуйте метод PointF[] GetJointPositions(double shoulder, double elbow, double wrist) В том же файле в классе AnglesToCoordinatesTask_Tests напишите модульные тесты, покрывающие все принципиальные случаи. Используйте константы UpperArm, Forearm и Palm из класса Manipulator в качестве размеров соответствующих частей манипулятора. После выполнения этого задания, при запуске проекта, визуализация должна будет отражать положение манипулятора в зависимости от начальных значений. 2. В том же проекте доработайте файл VisualizerTask.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 вызвать ManipulatorTask.MoveManipulatorTo и обновить значения Shoulder, Elbow и Wrist (это понадобится в последней задаче). UpdateManipulator нужно вызывать после каждого изменения X, Y или Alpha, то есть в методах MouseMove и MouseWheel. В методе DrawManipulator допишите рисование манипулятора. Нарисуйте каждый сегмент манипулятора отрезком прямой, а каждый сустав — окружностью. Координаты сустава получите методом AnglesToCoordinatesTask.GetJointPositions. Не забудьте преобразовать логические координаты в оконные. При запуске проекта в результате вы сможете управлять углами сгиба суставов манипулятора с помощью клавиатуры. А после выполнения следующих заданий, манипулятор должен будет следовать за курсором мыши. 3. В том же проекте решите вспомогательную задачу на геометрию в классе TriangleTask.cs. Реализуйте метод double GetABAngle(a, b, c). Он должен возвращать угол в радианах между сторонами a и b в треугольнике со сторонами a, b, c. Естественно, для практических целей треугольник может быть вырожденным, то есть некоторые стороны могут иметь длину 0. При недопустимых аргументах или при невозможности определить угол в вырожденном треугольнике метод должен возвращать double.NaN. В том же файле напишите модульные тесты, покрывающие все случаи. В том числе и особые, граничные случаи. 4. В том же проекте реализуйте метод MoveManipulatorTo в классе ManipulatorTask. Он должен возвращать массив углов new[] {shoulder, elbow, wrist}, необходимых для приведения эффектора манипулятора в точку (x, y) относительно крепления манипулятора к столу, и с углом между последним суставом и горизонталью равному alpha в радианах. Если это невозможно, то возвращайте массив из трех double.NaN. Сверяйтесь с чертежом! Не перепутайте углы и их направления! Рандомизированный тест В том же файле напишите вместо нескольких тестов один рандомизированный. Он должен в цикле генерировать случайные значения X, Y, Angle, вызывать MoveManipulatorTo, по углам вычислять позицию эффектора и проверять, что она совпадает с требуемой. Среди сгенерированных X, Y, Angle иногда будут попадаться нерешаемые. Например, если требуемая точка (X, Y) расположена слишком далеко, то метод вернет NaN-ы. Однако несложно определить, для каких точек задача имеет решение, а для каких нет. Подсказку ищите в коде задачи о визуализации. Ваш рандомизированный тест должен проверять, что NaN возвращается только тогда, когда решения действительно нет.
Это место для переписки тет-а-тет между заказчиком и исполнителем.
Войдите в личный кабинет (авторизуйтесь на сайте) или зарегистрируйтесь, чтобы
получить доступ ко всем возможностям сайта.
Закажите подобную или любую другую работу недорого
или
Отзывы студентов о нашей работе
912 316 оценок
среднее 4.9 из 5

Серафим

ВУЗ

Работа выполнена очень качественно! Очень грамотный специалист, рекомендую! Обращаюсь не в...

Александр

МЭИ

Исполнитель молодец! Срок на выполнение ставил неделю, исполнитель справился за день. За к...

Анна

Горный

Быстро, оперативно,аккуратно выполнена работа. Павел очень быстро отвечает на сообщения, о...

Антон

ИрНИТУ (бывш. ИрГТУ)

Решение внятное, выполнение заказа прошло настолько быстро, будто исполнитель решил его за...

Студенты о нашем сервисе

Ростислав
Пользуется сервисом несколько лет. Рад, что может общаться с исполнителями вживую и выбирать по цене
Анна
Работает и учится заочно. Пользуется сервисом во время сессии
Жанна
Пользуется сервисом 2 года. Учится дистанционно, мама в декрете, времени не хватает
Никита
Заказывает сбор информации и оформление научных статей, если сроки поджимают
Андрей
Обращается на сервис, чтобы эксперт нормально объяснил тему или решение задачи
Тысячи студентов доверяют нам Тысячи студентов доверяют нам
512 989
студентов
обратились к нам
447 217
экспертов
работают с нашим сервисом
2 615 579
заданий и консультаций
выполнено и сдано
Разместите задание, а
мы подберём эксперта
Сайт бесплатно разошлёт задание авторам.
А авторы предложат цены. Это удобнее, чем
искать кого-то в Интернете
Отклик экспертов с первых минут
С нами работают более 15 000 проверенных авторов с высшим образованием. Вы можете выбрать исполнителя уже через 15 минут после публикации заказа. Срок исполнения — от 1 часа
Цены ниже в 2-3 раза
Вы работаете с экспертами напрямую, поэтому цены
ниже, чем в агентствах
Доработки и консультации – бесплатны
Доработки и консультации в рамках задания бесплатны и выполняются в максимально короткие сроки
Гарантия возврата денег
Если автор не справится — мы вернем 100% стоимости
На связи 7 дней в неделю
Вы всегда можете к нам обратиться — и в выходные,
и в праздники
Узнать стоимость
Переживаете
за доработки?
Они бесплатны
С вами будут работать лучшие авторы.
Они знают и понимают, как важно доводить
работу до конца
Узнать стоимость
 Работает на сервисе более 8 лет
Эксперт
С нами с 2018 года
Помог студентам: 20 910
Рейтинг: 360 278
Среднее 4,87 из 5
14 756  оценок
 Работает на сервисе более 9 лет
Эксперт
С нами с 2017 года
Помог студентам: 25 559
Рейтинг: 319 930
Среднее 4,93 из 5
12 914  оценок
 Работает на сервисе более 7 лет
Эксперт
С нами с 2018 года
Помог студентам: 5 113
Рейтинг: 56 261
Среднее 4,89 из 5
Обращайте внимание на отзывы и рейтинг исполнителя
2 754  оценки
С нами с 2019 года
Помог студентам: 3 823
Рейтинг: 46 996
Среднее 4,82 из 5
2 208  оценок
Поможем вам со сложной задачкой 
Узнать стоимость
Гарантия возврата денег
Эксперт получил деньги за заказ, а работу не выполнил?
Только не у нас!
Безопасная сделка
Деньги хранятся на вашем балансе во время работы над заданием и гарантийного срока
Гарантия возврата денег
В случае, если что-то пойдет не так, мы гарантируем
возврат полной уплаченной суммы
Разместите заказ и получите
предложения с ценами
экспертов
Выберите автора
по цене и отзывам
Сдайте работу на проверку
преподавателю
Получите положительную оценку,
оплатите работу и оставьте
отзыв автору
Заботимся о вас
и вашем времени
У нас есть все, чтобы сделать вашу жизнь
более приятной и беззаботной
Экономия времени
Теперь у вас есть время на друзей, любимые занятия,
работу и семью
Удобный интерфейс
Современный дизайн, созданный для удобства
пользователей сайта
Часто задаваемые вопросы
1. Сколько стоит помощь?
Цена, как известно, зависит от объёма, сложности и срочности. Особенностью «Всё сдал!» является то, что все заказчики работают со экспертами напрямую (без посредников). Поэтому цены в 2-3 раза ниже.
2. Каковы сроки?
Специалистам под силу выполнить как срочный заказ, так и сложный, требующий существенных временных затрат. Для каждой работы определяются оптимальные сроки. Например, помощь с курсовой работой – 5-7 дней. Сообщите нам ваши сроки, и мы выполним работу не позднее указанной даты. P.S.: наши эксперты всегда стараются выполнить работу раньше срока.
3. Выполняете ли вы срочные заказы?
Да, у нас большой опыт выполнения срочных заказов.
4. Если потребуется доработка или дополнительная консультация, это бесплатно?
Да, доработки и консультации в рамках заказа бесплатны, и выполняются в максимально короткие сроки.
5. Я разместил заказ. Могу ли я не платить, если меня не устроит стоимость?
Да, конечно - оценка стоимости бесплатна и ни к чему вас не обязывает.
6. Каким способом можно произвести оплату?
Работу можно оплатить множеством способом: картой Visa / MasterCard, с баланса мобильного, в терминале, в салонах Евросеть / Связной, через Сбербанк и т.д.
7. Предоставляете ли вы гарантии на услуги?
На все виды услуг мы даем гарантию. Если эксперт не справится — мы вернём 100% суммы.
8. Какой у вас режим работы?
Мы принимаем заявки 7 дней в неделю, 24 часа в сутки.
Узнать стоимость
🔷 Эксперт выбираете сами
🔷 Стоимость от 50 руб.
🔷 Срок выполнения от 1 часа
🔷 Время отклика от 1 мин.
🔷 Доработки бесплатно
🔷 Гарантия на работу от 7 дней
🔷 Оригинальность до 95%
🔷 Безопасная сделка
🔷 Тех. поддержка ежедневно
🔷 Прямое общение с экспертом
Ну что, приступим?
Отправьте заявку и получите ответ с предложениями
по цене и срокам в течение часа.
Тип работы
Узнать стоимость
Вы уже зарегистрированы на данную почту как .
Укажите другую почту
Понятно
Заполните форму и узнайте цену
Тип задания
*
Антиплагиат:
Антиплагиат:
Поля, отмеченные *, обязательны для заполнения
Файлы (при наличии)
Ошибка


Задать вопрос

Задать вопрос

Сообщение успешно отправлено