|
0 / 0 / 0
Регистрация: 13.03.2016
Сообщений: 19
|
|
Классы геометрических фигур17.06.2019, 23:31. Показов 14105. Ответов 26
Всем привет! У меня возникли сложности с пониманием и реализацией задания.
Имеется задание (надеюсь перевести не составит труда): Design a small program in C++ that would implement the following: 1. Support a few types of 3D geometric curves – circles, ellipses and 3D helixes. (Simplified definitions are below). Each curve should be able to return a 3D point and a first derivative (3D vector) per parameter t along the curve. 2. Populate a container (e.g. vector or list) of objects of these types created in random manner with random parameters. Ensure that the container will contain objects of all supported types. 3. Print coordinates of points and derivatives of all curves in the container at t=PI/4. 4. Populate a second container that would contain only circles from the first container. Make sure the second container shares (i.e. not clones) circles of the first one, e.g. via pointers. 5. Sort the second container in the ascending order of circles’ radii. That is, the first element has the smallest radius, the last - the greatest. 6. Compute the total sum of radii of all curves in the second container. Additional optional requirements: 7. Split implementation into a library of curves and executable which uses API of this library. Expectations to the implementation: 1. The implementation must use virtual methods. 2. Has neither explicit memory deallocation nor memory leaks. 3. Curves must be physically correct (e.g. radii must be positive). 4. Containers and sorting must be implemented using STL (C++ Standard Template Library). 5. The implementation may use constructs of C++11 or higher. 6. The code must compile with any compiler of your choice (gcc, Visual C++, etc). 7. The result should be sent via email or posted on github. The delivery must contain source code only (no compiled binaries): *.h and *.cpp files and project files, so that we can compile the result by ourselves. Curve definitions: - All curves are parametrically defined, i.e. a point is calculated using some C(t) formula. - Circle is planar in the plane XoY (i.e. all Z-coordinates are 0) and is defined by its radius. - Ellipse is planar in the plane XoY and is defined by its two radii, along X and Y axes. - Helix is spatial and is defined by its radius and step (see the figure below). It takes 2 * PI in parametric space to make a round, i.e. any point on helix satisfies the condition C(t + 2*PI) = C(t) + {0, 0, step}. Прошу помощи опытных людей растолковать нюансы разработки данной программы, такие как: -Каждая кривая должна иметь возможность возвращать 3D-точку и первую производную (3D вектор) по параметру t вдоль кривой; -Заполните контейнер (например, вектор или список) объектами этих типов, созданных случайным образом с помощью случайных параметров. Убедиться, что контейнер будет содержать объекты всех поддерживаемых типов. Соответственно появился довольно смешной вопрос: Как заполнить контейнер, например вектор, объектами всех поддерживаемых типов (я так понял окружность, элипс, спираль)? Как заполнить контейнер случайным образом? и др. Возможно кто-то встречал подобные задачи и есть какой либо пример. Примеры Классов окружность, элипс, спираль. На работу выделено время - 7 дней. Очень прошу дать какую-либо информацию. Задание очень важное для меня. Если есть дополнительные вопросы по задаче, прошу - задавайте. Пока что каких-либо наработок нет, когда сделаю хоть что-нибудь, обязательно выложу сюда. Спасибо за внимание!
0
|
|
| 17.06.2019, 23:31 | |
|
Ответы с готовыми решениями:
26
Масштабирование геометрических фигур Вывод геометрических фигур |
|
Just Do It!
|
|||||||
| 20.06.2019, 22:00 | |||||||
|
zayats80888,
![]() такие комментарии ваще не нужны!!! они ни о чем! типа:
Самый лучший комментарий это расставить по коду пункты задания(с полным их содержанием) , имхо...
1
|
|||||||
|
6353 / 3524 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 20.06.2019, 22:03 | ||
1
|
||
|
0 / 0 / 0
Регистрация: 13.03.2016
Сообщений: 19
|
|
| 22.06.2019, 13:19 [ТС] | |
|
Добрый день!
zayats80888, спасибо большое за такую помощь! Вашу программу я изучил и сделал свою версию. Единственное что не понял, так это как происходит сортировка и можно ли сделать альтернативную версию сортировки? В целом же проблему решил и вопросов у меня не осталось. Спасибо большое за уделённое данной теме внимание! Добавлено через 5 минут По поводу сортировки: Естественно я понимаю что используете sort(), и соответственно компаратор. пробовал сделать что-то подобное и не получается у меня. Постоянно ошибки либо ничего не работает.
0
|
|
|
6353 / 3524 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|||
| 22.06.2019, 13:22 | |||
Сообщение было отмечено Кирилл2738 как решение
РешениеДобавлено через 55 секунд
0
|
|||
|
0 / 0 / 0
Регистрация: 13.03.2016
Сообщений: 19
|
|
| 22.06.2019, 13:33 [ТС] | |
|
Всё! Разобрался, большое спасибо за ответ!
0
|
|
|
0 / 0 / 0
Регистрация: 13.03.2016
Сообщений: 19
|
|
| 24.06.2019, 18:54 [ТС] | |
|
zayats80888, Добрый день! Извините, что снова поднимаю тему, но возник ещё один вопрос.
Имеется одно требование к программе - "Не имеет ни явного освобождения памяти, ни утечек памяти" , нельзя использовать явного удаления указателей (delete). Отсюда и сам вопрос, а как в вашем коде осуществляется освобождение памяти? Потому в моём экземпляре присутствуют утечки. Думал по поводу clear(), но не уверен решит ли это проблему. Заранее спасибо! Добавлено через 1 минуту Конечно вопрос выше, не конкретно одному человеку. Буду рад любым ответам!
0
|
|
|
6353 / 3524 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 24.06.2019, 19:01 | ||
|
Добавлено через 2 минуты Ссылки на использованные средства: https://en.cppreference.com/w/... shared_ptr https://en.cppreference.com/w/cpp/language/typeid https://en.cppreference.com/w/... inter_cast Добавлено через 3 минуты Не по теме: Кирилл2738, кстати я на форум скинул код, где спираль коническая, по ссылке на онлайн компилятор код правильный, с цилиндрической спиралью(отличие только в классе Helix3D, это я так, на всякий случай :))
0
|
||
| 24.06.2019, 19:01 | |
|
HELP!!! движение геометрических фигур Иерархия геометрических фигур в ООП Вычисление площадей геометрических фигур Графика - построение геометрических фигур Вывод на экран геометрических фигур Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть не большие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|