|
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 4
|
|
Необходимо сделать объемный вращающийся куб14.12.2009, 16:54. Показов 4676. Ответов 13
Метки нет (Все метки)
Нужна помощь по задачке на qbasic - необходимо сделать объемный вращающийся куб, при этом пользователем должен задаваться его размер... Очень желательно сделать его на этой неделе... Заранее благодарю за помощь!
0
|
|
| 14.12.2009, 16:54 | |
|
Ответы с готовыми решениями:
13
Вращающийся куб Вращающийся куб |
|
1 / 1 / 2
Регистрация: 04.12.2009
Сообщений: 60
|
||||||
| 14.12.2009, 22:30 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 4
|
|
| 15.12.2009, 00:01 [ТС] | |
|
Спасибо за пример, но я уже его видел и не смог разобраться как он работает...
И в общем мне надо немного другое, в примере куб вращается вокруг одной грани, а мне необходимо чтобы он вращался вокруг точки в центре куба..
0
|
|
| 07.06.2014, 21:28 | ||||||
|
Примите и этот. Он тоже вращается.
(программа проверена)
0
|
||||||
|
Кормпилятор
|
|
| 08.06.2014, 18:29 | |
|
Averonix, в закреплённой теме есть ссылка на FAQ как подобное делать.
Можно не только куб. Там и проекции и текстуры даже есть, правда QB но не суть. Прога из сообщения #2 не является ответом, т.к. вращается плоская картинка. Прога gehh-а тоже смутный вариант, иммитация изометрии, крутить точки по эллипсам сверху и снизу, во-первых нет относительности в пространстве, во-вторых это не 3D, а его одноразовая "эмуляция".
1
|
|
|
1045 / 315 / 74
Регистрация: 13.07.2013
Сообщений: 1,270
|
||||||
| 25.07.2014, 01:53 | ||||||
|
Вот более-менее рабочий вариант:
1
|
||||||
|
156 / 46 / 70
Регистрация: 01.07.2014
Сообщений: 185
|
|
| 25.07.2014, 08:00 | |
|
Я потрясен!
А что делает процедура changescreen() ??! Это на грани фантастики! Был бы вам очень благодарен, если бы вы хоть что-нибудь добавили к своей программе (мини-REM) Спасибо!
0
|
|
|
1045 / 315 / 74
Регистрация: 13.07.2013
Сообщений: 1,270
|
||||||
| 25.07.2014, 16:01 | ||||||
|
комментарии к программе
Тип poi - содержит координаты точки на экране.
Процедура dr - вычисляет координаты точки на экране по параметрам: координаты точки в пространстве, расстоянию до оси поворота, углам поворота (alfa=0.7 отвечает за вид "сверху", gamma - отвечает за "поворот" куба), глобальный sc - расстояние от наблюдателя до экрана. Результат помещается в параметр p. Процедура drawline - просто рисует линию от точки до точки, координаты которых содержатся в объектах типа poi. Процедура changescreen - меняет рабочую страницу экрана на демонстрирующуюся и очищает рабочую. В общем, то, что у VS, было в виде:
g = g + (TIMER - STime) * .5 - куб вращается со скоростью полрадиана в секунду. Т.е. за каждую секунду, потраченную на прорисовку, куб поворачивается на (STime+1-STime)*0.5=0.5 радиан. (STime=Timer - ожидание нового значения времени прорисовки.) Обеспечивает одинаковую (более-менее) скорость вращения куба при любых fps. IF g > 1.6 THEN g = 0 - куб делает не полный разворот, а поворачивается 90 градусов и возвращается в исходную позицию. Блок dr - вычисляются координаты на экране всех нужных в данный момент точек куба. Блок drawline - прорисовываются все нужные в данный момент ребра куба. changescreen - демонстрация экрана, работа с новой страницей.
1
|
||||||
|
156 / 46 / 70
Регистрация: 01.07.2014
Сообщений: 185
|
|
| 25.07.2014, 16:47 | |
|
Я очень Вам благодарен. Сам я никогда не применял такие
возможности QBasic-а. Да и подобная программа мне встретилась первый раз. Вы Бейсик-программист N 1 !!! Большое Спасибо Вам за комментарий.
0
|
|
|
Кормпилятор
|
||
| 27.07.2014, 03:36 | ||
|
Good-Morning, мерцание сильное на DOSBox. Попробуй мой вариант FLIP.
Проекцию я Стасу давал на другом форуме, если найдёшь посмотри, она и тут была где-то, тема, где был проанализирован чужой код. Не понятно от чего прётся xod\gehh, 3d пишется элементарно, вроде бы он и заходил в закреплённую тему. Добавлено через 16 минут
Тупо текстуры вышли из моды после Quake 2 и Half-Life, 98-й и 99-й года.
2
|
||
|
1045 / 315 / 74
Регистрация: 13.07.2013
Сообщений: 1,270
|
|||||||
| 27.07.2014, 18:31 | |||||||
|
Оптимизировал, теперь даже на 3000 cycles (DOSBox) тянет.
0
|
|||||||
|
Кормпилятор
|
||||||
| 28.07.2014, 03:46 | ||||||
|
Good-Morning, всё равно моргать будет, знаю, что по идее не должно, но будет.
Копируй FLIP подчистую, не боись. Суть ещё в том, что у тебя много тригонометрии и ресурсоёмких операций на каждую вершину. Я тоже свой двиг написал когда, понял что сильно дофига, что-то закешировал, но всё равно деления, синусы и прочая муть. Можно взять проекцию вот такую:
Ежели на QB\QBasic то таймер дополнительно можно эмулировать через эвент PLAY, это конечно "грязный" метод, но нативный и халявный.
0
|
||||||
|
1045 / 315 / 74
Регистрация: 13.07.2013
Сообщений: 1,270
|
||||||||||
| 28.07.2014, 15:49 | ||||||||||
:
0
|
||||||||||
|
Кормпилятор
|
||||||
| 29.07.2014, 06:52 | ||||||
свернуть во что-то такое можно с ограниченными проекционными возможностями. В ENLIGNT факе для демщиков используется такое: sx = xSize/2+x*dist/(z+dist), sy = ySize/2-y*dist/(z+dist). Добавлено через 12 минут
операции поворот точек делал. Правда он там копирайт наложил собака, но как-бы можно простой логикой это делать. Там в демке массив красных точек вращался, ну может видел. Добавлено через 7 минут
уже не ставить на тестирование. Но эмуляция вообще вещь очень кривая, она не учитывает hardware оптимизацию, да и QuickBasic настолько неповоротлив, что разница в скорости на разных тачках между его кодом и кодом на ассемблере сильно ощущается.
0
|
||||||
| 29.07.2014, 06:52 | |
|
Помогаю со студенческими работами здесь
14
Вращающийся куб Нарисовать вращающийся куб Вращающийся куб, управление стрелками Вывести в досе вращающийся 3d куб Вращающийся куб с кнопками управления Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|