|
0 / 0 / 0
Регистрация: 13.03.2016
Сообщений: 19
|
|
Классы геометрических фигур17.06.2019, 23:31. Показов 13843. Ответов 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
|
|||||||
|
6352 / 3523 / 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
|
|
|
6352 / 3523 / 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
|
|
|
6352 / 3523 / 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 | |
|
Помогаю со студенческими работами здесь
27
HELP!!! движение геометрических фигур Иерархия геометрических фигур в ООП Вычисление площадей геометрических фигур Графика - построение геометрических фигур Вывод на экран геометрических фигур Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|