Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Как заставить Python строить 3D-фигуры по вводимым пользователем данным?

Так получилось, что мне надо сдать учебный проект на Python. Его суть состоит в том чтобы он помогал решать задачи по стереометрии (то есть программа построит фигуру и можно будет её покрутить и понять где какие элементы фигуры расположены). Так как я новичок в программировании, передо мной возникли 3 проблемы:
  1. Написать код, способный строить 3D фигуры по вводимым пользователем данным
  2. Создать окно для этой программы с полями ввода и соответствующими кнопками
  3. Связать пункты 1 и 2 воедино (сам код из 1 пункта должен работать в рамке поменьше всего окна)
Само окно через Tkinter создать получается, а вот с остальными проблемами разобраться не выходит(
Помогите пожалуйста. Объясните понятным новичку языком как справиться с задачами 1 и 3 или поделитесь ресурсом где я могу всё самостоятельно изучить
ПрограммированиеPython+2
Дмитрий Огородников
Python Q
  · 275
Делаю программное обеспечение на заказ.  · 10 мар 2022
Эту задачу можно разделить на такие подзадачи:
  • UI, т.е. обеспечить ввод данных и вывод картинки
  • построение фигуры по введённым данным
  • рендеринг фигуры, т.е. построение проекции из 3D в 2D.
Можно, например, разделить окно на две панели. Слева будут компоненты для ввода данных, а справа — Canvas.
Внизу на левой панели будет находиться кнопка "Построить", которая при клике должна будет:
  1. Очистить Canvas.
  2. Построить (в памяти) фигуру из отрезков в 3D-пространстве (т.е. наполнить список кортежей из двух точек, которые являются кортежами из трёх чисел).
  3. Построить проекцию всех этих точек в 2D-пространство (т.е. наполнить список кортежей из двух точек, которые являются координатами из двух чисел). Самый простой способ это сделать — использовать ортогональную проекцию (грубо говоря, сплющить одно измерение). Потом уже можно будет почитать про другие проекции (аксонометрическую, перспективную).
  4. Эти 2D-линии добавить на Canvas.
Это, конечно, не OpenGL, но для учебных целей неплохой вариант.
Вращение мышкой — по сути дела эквивалентно быстрому многократному нажатию на кнопку "Построить" с изменением положения камеры, только по событиям мыши на объекте Canvas, а не по клику на кнопке. Я предлагаю сначала это не делать.