|
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 4
|
|
Необходимо сделать объемный вращающийся куб14.12.2009, 16:54. Показов 4636. Ответов 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 куб Вращающийся куб с кнопками управления Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|