У нас нет ни одной задачи по рисованию реального 3-мерного куба, так что вот оно:
Вызов
Ваша задача - нарисовать повернутый куб с перспективой. Это может быть в отдельном окне или в виде изображения.
вход
Вы вводите 3 отдельных числа от 0 до 359,99 ... Они представляют вращение вокруг осей x, y и z в градусах.
0 0 0
30 0 40
95 320 12
Вывод
Вы можете отобразить его в отдельном окне или сохранить изображение. Вы можете использовать любой тип отображения (векторный, растровый и т. Д.).
Редактировать: ASCII также разрешен, чтобы разрешить языки игры в гольф только с текстовым выводом.
Выходные данные для растеризованной или ASCII-графики должны быть не менее 50 * 50 (пиксели для растеризации, символы для ASCII)
Дополнительная информация
Положительная ось z указывает из окна, ось x горизонтальна, а ось y вертикальна. В основном стандарт OpenGL.
Вращения осуществляются против часовой стрелки, если смотреть на куб в отрицательном направлении конкретной оси, например, смотреть вниз по оси y.
Камера должна находиться на оси z на разумном расстоянии от куба в отрицательном направлении z, куб должен находиться в точке (0; 0; 0). . куб также должен быть полностью видимым и занимать не менее 50% рамки рисования. Камера должна смотреть в положительном направлении z на куб.
Вращения куба применяются в порядке x-> y-> z.
Куб вращается вокруг своего центра, он не двигается.
Чтобы спроецировать куб в 2d пространстве, вам необходимо разделить координаты x и y куба на расстояние, параллельное оси z между точкой и камерой.
правила
Библиотеки рендеринга разрешены, но вершины должны быть определены в коде. Нет 3d модели куба класса.
Контрольные примеры
google will tell you the formula.
Нет , задачи должны содержать как можно больше материалов и информации, необходимых для их решения, включенных в текст сообщения . Я не должен идти в Google или в Википедию, чтобы начать понимать.