lang: ru author:
- И.Д. Соловьев
- Е.А. Роганов
- А.И. Александров date: 26.04.2024 title: Отчёт о модификации проекта «Изображение проекции полиэдра» ...
Назовём точку в пространстве «хорошей», если её проекция находится строго внутри окружности
$x^2+y^2 = 4,$ но строго вне окружности$x^2+y^2 = 1.$ Модифицируйте эталонный проект таким образом чтобы определялась и печаталась следующая характеристика полиэдра: сумма длин рёбер, оба из концов которых — «хорошие» точки.
В данной задаче требуется рассматривать проэкции вершин полиэдра на плоскость
- В класс
R3
был добвален метод, проверяющий, является ли переданная точка «хорошей», при помощи подстановки ее$x$ и$y$ координат в рассмотренное при постановке задачи неравенство. - Было принято решение выявлять ребра, оканчивающиеся «хорошими» точками на
этапе задания ребер для каждой грани в методе
__init__
классаPolyedr
- Так как некоторые ребра могут принадлежать одной или двум граням, в зависимости от конфигурации полиэдра, то необходио проверять, было ли ранее посчитано рассматриваемое ребро, или нет. Самой простой с точки зрения написания кода проверкой в данном случае является двумерный массив смежности. Это «таблица», по столбцам и строкам которой расположены все вершины полиэдра, ячейки заполнены единицами. Когда вычисляется сумма очередного ребра, ячейка на пересечении строки и столбца с соответствующими вершинами начала и конца ребра заполняется нулем.
- Также в метод
__init__
классаPolyedr
был добавлен дополнительный массив вершин, с непреобразованными координатами, чтобы в полученной суммарной длине не учитывался коэффициент гомотетии. - Вычисление длины рёбер было реализовно с помощью операции взятия квадратного корня из скалярного произведения.
- Была добавлена отправка в стандартный вывод информации о длинне ребер, подходящих под условие.
- В класс
Polyedr
добавляется методprint_good_sum(self)
, возвращающий искомую сумму длин рёбер с «хорошими» точками на концах. - В методе
draw
классаPolyedr
была добавлена отрисовка кольца и проекций точек, при этом учтен коэффициент гомотетии для корректного отображения кольца. - Были написаны соответствующие тесты, иллюстрирующие правильность работы всех написанных методов и модификации в целом.
Здесь pdf.latex
и HTML.html5
--- переименованные файлы шаблонов.
Команда для получения отчета в формате pdf
, с использованием заданного
шаблона.
pandoc --template pdf.latex -s --toc --lua-filter ./include-code-files.lua report.md -o report.pdf
Команда для получения отчета в формате html
, с использованием заданного
шаблона.
pandoc -o report.html -f markdown -t html -s --toc --lua-filter ./include-code-files.lua --mathjax --template html.html5 report.md
Команда для получения отчета в формате docx
.
pandoc -s report.md --toc --lua-filter ./include-code-files.lua -o report.docx
- Коробка, шесть из восьми вершин которой попадают в заданное кольцо.
- Куб, шесть из восьми вершин которого попадают в заданное кольцо.