С++ Каркас куба.

На этой странице описан один из множества вариантов рисования каркаса трехмерного куба. Здесь не будет никаких преобразований, здесь простой пример рисования. Хотя с другой стороны этот пример не так прост, каким может показаться. Приблизительное представление о трехмерном пространстве имеет каждый.

Благодаря компьютеру мы можем имитировать трехмерные объекты на наших экранах. Трехмерная графика сложная штука. Многие помнят как когда-то рисовали кубик на листе бумаги. Сначала рисуем квадрат, потом продолжаем дорисовывать до куба. Вот такого рода куб я и хочу нарисовать.
Существуют разные способы задания проекций. Чтобы работать с трехмерными изображениями надо знать понятие проекций и немного в них разбираться.
Чтобы нарисовать такой кубик как я хочу, мне поможет Проекция Кабине.
Сам алгоритм рисования куба будет таким:

    1) Определяю точки для первого квадрата.
    2) Выполняю поворот отрезка для определения пятой вершины куба
    3) Рисую второй квадрат
    4) Соединяю линии

(Поворот отрезка может быть немного сложен на первых порах, но понять его не самое сложное.)

Итак, чтобы наша программа заработала, нужно определиться чего нам нужно.
1) Нужны — координаты начала отсчета
2) Нужна длина ребра куба
3) Нужна функция, в которой будут задаваться начальные значения вершин куба
4) Нужна функция, которая будет поворачивать отрезок на угол 26.5 градусов
5) Нужна функция, которая будет соединять все точки массива.
6) Нужно написать программу

Я определился так, что коли на мониторе мы в любом случае имеем двумерную плоскость, то мне будет достаточно одной переменной типа TPoint (две точки). Чтобы соединять линии удобно использовать массив, но заранее я не стал считать сколько нужно точек, разобрался по ходу написания программы.

  • Код C++ Каркас куба. Примитивы

Когда я писал код, то за неопытом контролировал каждую нарисованную линию, выводя её на экран сразу после вычисления очередной точки. Да что линию, даже точки выводил как маленькие окружности, чтоб видеть, что точка легла куда я хотел.

При соединении вершин квадратов использовано то, что я оба квадрата рисовал одинаково (Вниз-Вправо-Вверх-Влево).

Разумеется этот код далеко не идеальный, но приблизительно настолько расписанных примеров мне встречать пока еще не доводилось. Этот пример рисования каркаса куба только один из множества возможных способов. В моем понимании сам алгоритм такого рисования каркаса куба относительно прост, но чтобы хорошо понимать этот код, у читающего должен быть хотя бы небольшой опыт рисования двумерных объектов относительно точек.

2 комментария на «“С++ Каркас куба.”»

  1. Аноним:

    А как нормально создать проект что бы код работал? А то пишет не удается найти указанный файл

    • От компилятора зависит. У меня описано для очень старого. Вам скорее всего нужно или OpenGl или directX. В зависимости от выбора

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Поиск

 
     

Случайная книга в электронном формате

https://www.litres.ru/igor-simdyanov/obektno-orientirovannoe-programmirovanie-na-php-6989621/?lfrom=15589587
Яндекс.Метрика