|
0 / 0 / 0
Регистрация: 14.12.2009
Сообщений: 4
|
|
Необходимо сделать объемный вращающийся куб14.12.2009, 16:54. Показов 4708. Ответов 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 куб Вращающийся куб с кнопками управления Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В качестве. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|