graphics.h Рисование Куба, Вращение, Масштабирование, Перемещение куба

В компьютерной графике часто можно встретить задание по афинным преобразованиям, среди таких заданий можно наткнуться на задание с кубом. Нужно построить, но не просто нарисовать куб, а всячески им манипулировать. Уменьшать, Увеличивать, Вращать по разным осям и перемещать. В доисторическом компиляторе C++ 3.1 эта задача вполне решаема, хотя честно признаться это достаточно геморройно. Я хотел добавить такой пример в свои учебные материалы, но все никак найти не мог. Самому сделать не получалось. Даже сейчас, несмотря на то, что это задание наверное старее чем сам Borland C++ 3.1, чтобы найти исходник в интернете для этого dos компилятора, нужно сильно постараться. Но я умудрился найти исходник. Написал код не я, поэтому подробно объяснить не могу, но думаю то, что есть сам исходник куба с возможностью различных манипуляций над ним может оказаться кому-то очень ценным, нужным и полезным материалом.


Код проверен и работает, единственное, не знаю как с плюсом и минусом. При переделывании на другии клавиши, функции масштабирования у меня работали. Чтобы выйти из программы нужно нажать Escape, для вращения нужно нажать например x и удерживать. По какой оси хотим вращать, такую букву и жмем (разумеется латинскую). Перемещение куба проводится стрелками клавиатуры. Вот такой вот код куба в С++ мне удалось отыскать.
 
Еще раз напомню, написано не мной. Там откуда я качал, комментарии есть, но кодировка сбита и приходилось как в поле чудес слова угадывать. Автор не указан, поэтому мне неизвестно чей это исходник.
 
Надеюсь этот материал смог вам помочь
Чтобы назначить свои клавиши управления, нужно изменить константы в самом верху. Там нужно прописать код нужной клавиши. Как узнать код написано здесь
Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

16 комментариев: graphics.h Рисование Куба, Вращение, Масштабирование, Перемещение куба

  • Injer говорит:

    Куча ошибок в коде. Вы сами-то пробовали вращать ваш куб?

    Автор сайта отвечает:
    В коде ошибок нет. Куб вращается.

  • Мишко говорит:

    Спасибо за код, но не могу переделать куб. Нужно чтобы была изометрия, самостоятельно допилить куб не получилось…

    Автор сайта отвечает:
    а я не знаю что такое изометрия. не ручаюсь, что у меня получится вам помочь(.

    Мишко говорит:
    Необходимо чтобы дальний нижний угол куба при вращении совпадал с его передним верхним углом. Вот тут пример — http://lib2.znate.ru/pars_docs/refs/303/302598/302598_html_22985d9f.png (куб под буквой «а»). Тот куб что в данной программе не имеет такой особенности. Пробовал крутить данный фрагмент
    void Perspect()
    {
    sX = X + Z /2;
    sY = Y — Z /2;
    }

    Изометрию создать удалось, но он стал далеко не кубом…

    Автор сайта отвечает:
    я, правда, сейчас помочь не могу.
    если советы давать начну, могут быть полностью идиотскими.
    единственное, что могу спросить, так это пробовали делить на 2.0? (не на целое число).

    Мишко говорит:
    На 2.0 — нет, но на 1.65 и 1.75 пробовали 🙂

  • Garret говорит:

    А можете выложить исходник самой программы?

     

  • Garret говорит:

    Можете выложить исходник самой программы, пожалуйста?

  • Роман говорит:

    Кто-то может выложить скомпилированный проект? Пожалуйста, очень нужно.

    • admin говорит:

      Этот код не очень удачен, хотя рабочий. В современных системах исполняемый файл не заработает. Этот код написан для древнего borland c++ 3.1
      Я могу дать рабочий файл, но его можно легко скачать откуда угодно, наверное. А меня подождать придется.

      • Роман говорит:

        Дайте, пожалуйста. Вы написали что этот код не очень удачен. Вы не находили более удачный код?

        • admin говорит:

          С sfml, OpenGl, DirectX.
          У меня не хватает времени, чтобы с ними разбираться. Их надо устанавливать отдельно, но зато для них примеров написано очень много.

          Я попробовал переписать, но часть этого кода мне непонятна, переписать не удалось. Так что дать не смогу. Я могу дать файл, полученный из написанного в статье кода, но он не запустится в Windows.

        • admin говорит:

          Вот код на WinApi. Он скомпилируется и запустится, если WIndows.

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

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

Поиск

 
     

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

Яндекс.Метрика
НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

Встречает в аду один черт другого и говорит: "Слушай, это ты того компьютерщика сюда притащил?" - "Да, а что?" - "Ты в другой раз толком объясняй, что такое ад - а то он, пока понял, что это не Doom, двести чертей перестрелял..."

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

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