|
0 / 0 / 0
Регистрация: 13.03.2016
Сообщений: 19
|
|
Классы геометрических фигур17.06.2019, 23:31. Показов 14005. Ответов 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 | |
|
HELP!!! движение геометрических фигур Иерархия геометрических фигур в ООП Вычисление площадей геометрических фигур Графика - построение геометрических фигур Вывод на экран геометрических фигур Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|