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

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

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

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

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

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

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

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

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

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

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

Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

2 комментария: С++ Каркас куба.

  • Аноним говорит:

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




    0



    0
    • admin говорит:

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




      0



      0

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

Ваш e-mail не будет опубликован.

Поиск

 
     

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

https://www.litres.ru/dzhek-natting/ios-6-sdk-razrabotka-prilozheniy-dlya-iphone-ipad-i-ipod-touch-8909997/?lfrom=15589587
Яндекс.Метрика
НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

- Что ты пишешь? - спросили программиста. - Сейчас запустим - узнаем! - ответил программист.

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок