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

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

Эта работа успешно выполнена на онлайн-сервисе помощи студентам «Всё сдал!»
программирование на СИ
Манипулятор
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%
🔷 Безопасная сделка
🔷 Тех. поддержка ежедневно
🔷 Прямое общение с экспертом
Ну что, приступим?
Отправьте заявку и получите ответ с предложениями
по цене и срокам в течение часа.
Тип работы
Узнать стоимость
Вы уже зарегистрированы на данную почту как .
Укажите другую почту
Понятно
Заполните форму и узнайте цену
Тип задания
*
Антиплагиат:
Антиплагиат:
Поля, отмеченные *, обязательны для заполнения
Файлы (при наличии)
Ошибка


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

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

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