Форум сайта python.su
0
Вообще, возможно ли написать 3д программу на питоне с нуля без использования модулей? Под 3д программой я имею ввиду не редактор (типо 3дс Макс, Майа …), а Viewer в котором можно было бы вращать в пространстве какую-нибудь 3д модель (куб, шар …) У меня просто в голове не укладывается, как это реализовывается. Как с помощью всех этих стандартных while, for, if и др. операторов сделать 3д пространство, которое будет видно на мониторе?
Офлайн
1
Как вы себе это представляете?
Офлайн
857
Можно вообще из бумаги сделать шар и вращать его, зачем ограничиваться компьютером и питоном? :)
Можно нарисовать в Qt и вывести интерактивно. Вообще для рисования используют matplotlib, там даже есть какой-то подмодуль для анимации.
Отредактировано py.user.next (Окт. 30, 2014 00:18:44)
Офлайн
0
С помощью питона можно ли это сделать? Создать 3д пространство в котором можно вращать куб?
Офлайн
0
Я спросил этот вопрос из-за интереса. И мне интересно не то, с помощью каких модулей это можно реализовать, а то, как такие вещи реализуются. Как, например, в модуле matplotlib это сделано? Написано на питоне, или с помощью Си? Если на питоне, то с помощью чего можно создать на экране картинку с 3д кубом?
Офлайн
88
Pavel_BlendБез использования модулей такую программу не написать ни на си, ни на ассемблере.
без использования модулей?
Офлайн
0
Ну хорошо, тогда вопрос: я представляю 3д пространство на мониторе как холст определённого размера (3д окно). Этот холст имеет пиксели, каждый из которых имеет определённый цвет. И чтобы на этом холсте можно было бы нарисовать 3д модель нужно менять цвета пикселей. Так вот как менять цвета пикселей? Как к ним достучаться?
Вообще с помощью питона возможно ли изменить цвет пикселя на мониторе?
Офлайн
88
На прикладном уровне возможно всё. Переносить точки между системами координат тоже.
Офлайн
0
А как разработчики графических модулей смогли менять цвета пикселей? Ведь все модули написаны на питоне, то есть в них используются стандартные возможности языка. Я не понимаю, как имея на начальном этапе только стандартную часть языка (while, for, if, list, int … ) сделать графический модуль? Все же модули растут из стандартного Питона. Для меня питон или другой язык - это что-то вроде калькулятора. Я не знаю как писать программы, а знаю только как делать операции со стандартными данными. Не понимаю как из стандартных данных сделать изображение на мониторе.
Офлайн
88
Почитайте об архитектуре графических адаптеров и, в частности, экранном буфере.
Офлайн