|
0 / 0 / 0
Регистрация: 24.10.2019
Сообщений: 8
|
|
Трехмерная графика30.10.2019, 23:37. Показов 13033. Ответов 47
Метки нет (Все метки)
Как понятно из названия хочется с помощью языков этих в ручную написать 3 мерное пространство, думал делать через 3 мерный массив, но подумав получше понял что идея плохая, кто подскажет как с нуля сделать 3 мерное пространство ?
0
|
|
| 30.10.2019, 23:37 | |
|
Ответы с готовыми решениями:
47
Трехмерная точка Трехмерная матрица через вложенные вектора трехмерная графика |
|
фрилансер
6444 / 5639 / 1128
Регистрация: 11.10.2019
Сообщений: 15,003
|
|
| 30.10.2019, 23:42 | |
|
MaksimK1, а что ты понимаешь под трёхмерным пространством ?
0
|
|
|
0 / 0 / 0
Регистрация: 24.10.2019
Сообщений: 8
|
|
| 30.10.2019, 23:47 [ТС] | |
|
3 оси координат: х ,у ,z ; на 2 мерной плоскости 3 мерное пространство делается через перспективу. А по большому счету сказать мне больше нечего =(
0
|
|
|
фрилансер
6444 / 5639 / 1128
Регистрация: 11.10.2019
Сообщений: 15,003
|
|
| 30.10.2019, 23:47 | |
|
_Ivana,
0
|
|
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
|||
| 31.10.2019, 07:39 | |||
|
Хотите выводить трехмерную графику с ручным расчетом перемножения матриц преобразования? Или воксельная графика, где каждый элемент массива - единица ("пиксель") объема?
0
|
|||
|
Гвоздь Задиров
1718 / 1117 / 337
Регистрация: 25.01.2019
Сообщений: 2,940
|
||||||
| 31.10.2019, 18:46 | ||||||
Сообщение было отмечено MaksimK1 как решение
Решение
От, накалякал
![]()
ээх, какой же ерундой я иногда занимаюсь...
1
|
||||||
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
||||||||||||||
| 01.11.2019, 09:59 | ||||||||||||||
Для меня было неожиданностью, что константы M_PI_2 и M_PI_4 также являются стандартными. Соответственно, на их переопределение компилятор тоже ругается. Вот только сам ввод-вывод у вас медленный: программа не успевает обрабатывать данные по мере поступления. Да и стены частенько друг через друга просвечивают. Плюс текстура у "горизонтальных" и "вертикальных" стен одинаковая, что мешает ориентироваться. . Ну и вместо устаревшей conio.h и т.п. лучше использовать ncurses. Если будет время перепишу ваш код под нее.
0
|
||||||||||||||
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
|||||||
| 01.11.2019, 11:02 | |||||||
2
|
|||||||
|
Гвоздь Задиров
1718 / 1117 / 337
Регистрация: 25.01.2019
Сообщений: 2,940
|
|||||||||||||||||
| 01.11.2019, 11:12 | |||||||||||||||||
|
Очевидно только что у меня IDE чудаковатая и с прибабахами. math.h допилить пришлось для удобства -
, соотв-но M_PI и прочее там закрыты без определнного _USE_MATH_DEFINES_ или как-то так, я то ли забыл, то ли опечатался, короче с первого раза не завелось и я психанул. А точность тут избыточная. Тут по всей in_frame() чудеса, начиная от Ну и вот этот писюн ниже огонь вообще.
но тут нет "горизонтальных"; да и вертикальных "стен" как таковых тоже нет. Я бы назвал это набором столбиков,( в конкретном примере упорядоченных в три линии ) ![]() ![]() Таки, резюмируя, на какую-то скорость работы или плавность я не рассчитывал, мне было интересно в принципе поиграться с перспективой в консоли и побыстрее получить "картинку". Оно и работает-то через пень-колоду, не претендуя на красоту кода, но всё же работает)
1
|
|||||||||||||||||
|
Гвоздь Задиров
1718 / 1117 / 337
Регистрация: 25.01.2019
Сообщений: 2,940
|
||
| 01.11.2019, 11:56 | ||
|
Код у меня, конечно, сразу не завёлся - нужно PDcurses собирать - вечером попробую.
1
|
||
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
||||||||
| 01.11.2019, 12:02 | ||||||||
|
Если действительно хотите разобраться в трехмерке, да и прочей графике на низком уровне, настоятельно рекомендую именно такие примитивные средства вывода и расчет всего подряд на процессоре. Вот когда вся эта магия перестанет быть магией - отдать ее на видеокарту, а самому заниматься подсовыванием ей исходных примитивов. . В общем, я бы советовал еще помедитировать над своим кодом, над моим кодом, над алгоритмом (меня немного смущает расчет дальности и высоты, хотя в тонкости вашей реализации не вникал). ASCII-арт и псевдографика это не плохо и не примитивно. На самом деле это самостоятельное направление искусства. Ручная реализация трехмерки - тоже. Уж во всяком случае это интересный и полезный опыт. Добавлено через 1 минуту
1
|
||||||||
|
Гвоздь Задиров
1718 / 1117 / 337
Регистрация: 25.01.2019
Сообщений: 2,940
|
||||||
| 01.11.2019, 13:50 | ||||||
|
Мерцает чуток - да, но это же, по сути, интерактивное слайд-шоу, а не что-то в реальном времени, я изначально вполне понимал как это будет выглядеть. Мог бы я лучше? Мог, почему нет, но на это уйдёт куда больше времени, а я сейчас не могу позволить себе дни напролёт бить баклуши, да и тема стала бы не актуальной. Достиг ли я своей цели? Достиг и поделился с миром. Это всего лишь маленький, примитивный пример. Денег за него не просят. Можно ли это улучшить? Безусловно. Интересно ли это? Да. Буду ли лично я сейчас этим вплотную заниматься? Нет. У меня сейчас другие приоритеты. Забавы ради иногда - конечно. Тут же полировать и вылизывать можно до бесконечности.
Вечером посмотрю ещё.
1
|
||||||
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
|||
| 01.11.2019, 15:30 | |||
|
Я всегда считал, что от неконструктивной похвалы куда меньше пользы, чем от конструктивной критики. Именно поэтому я указал на некоторые места, которые можно было бы улучшить (ncurses <- conio , move(0,0) <- cls , именованные константы и т.п.) с конкретным примером. Уверен, вы сами знаете, что представление стены в виде ряда столбцов не самый оптимальные вариант, так же как использование тригонометрии для определения их высоты. И соответственно в следующей версии примените другой алгоритм. Для такого 2.5D как в Думе изначально использовался метод трассировки лучей. То есть из камеры пускается луч в направлении пикселя экрана (расчет идет только по одной горизонтальной линии) и ищутся его пересечения со всеми стенами. Из них выбирается ближайшее и на основании расстояния до пересечения рисуется вертикальный столбец нужной высоты. Примерно так сделано и у вас, но там рассчитывается пересечение луча и отрезка, а у вас - луча и точки. . Другое дело, что такое 2.5D имело смысл для тех времен, когда на расчет "честного" 3D не хватало ресурсов. Сейчас даже для псевдографики имеет смысл считать матрицы. Возможно, какие-то другие статические библиотеки не подключены? Посмотрите в makefile вдруг повезет.
2
|
|||
| 01.11.2019, 18:30 | ||
|
2
|
||
|
Гвоздь Задиров
1718 / 1117 / 337
Регистрация: 25.01.2019
Сообщений: 2,940
|
||||
| 01.11.2019, 18:31 | ||||
|
У меня иногда бывают проблемы с выражением своих мыслей, видимо и чужие я понимаю с подобной точностью ![]() По поводу завода кода: поставил PDcurses 3.9 - ругалось на set_escdelay(0); - вообще не видит getmouse(&event) - у меня только без параметров вариант //кстати, зачем мышь? У меня она ничего не делала даже в приложенном ~exe set_escdelay(0) убрал - поехало. ![]() Собирался делать между ними горизонтальные линии по концам ( у меня давно уже в одной из тетрадок решение попиксельного отображения линий из точки в точку набросано было (решал какую-то задачку из интернета), но нереализовано - пришлось бы очень кстати ), но потом я вспомнил что стены непрозрачны, оценил время и опустил руки. Но вы меня заразили. Последние часы я обдумывал стены и стены с разной высотой. Обдумывал 2д-аппликацию, но это, кмк, дорого. В итоге, исходя из малого разрешения, пришёл, как ни странно, к примерно этому Если б с одинаковой высотой - было бы куда проще, но я захотел разную) (см. изображение) Заразили. Буду делать стены
1
|
||||
|
Гвоздь Задиров
1718 / 1117 / 337
Регистрация: 25.01.2019
Сообщений: 2,940
|
||
| 01.11.2019, 18:45 | ||
|
Опять всё забыл в итоге.
1
|
||
|
222 / 57 / 18
Регистрация: 13.03.2017
Сообщений: 295
|
|
| 01.11.2019, 19:08 | |
|
MaksimK1,
Этот жуткий С++ изучаю из-за острой необходимости. Совсем недавно писал на PascalABC.net там неплохая 3D графика: и тени есть и камера поворачивается и все, что надо. Я даже разработал 3D модель стендовой стрельбы по тарелочкам. Тарелочки летят , будь здоров! Рекомендую.
0
|
|
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
|||||
| 01.11.2019, 20:08 | |||||
На самом деле осталась с прошлых проектов, хотя, конечно, мышка в консольной программе это то еще извращение.В вашем варианте никто ж не запрещает отрисовывать не одну вертикаль, а все. Можно хоть z-буфер реализовать. Но повторяю, лучше все же осваивать матричные преобразования, растеризацию треугольника и прочие "честные" куски трехмерки. Для консольного разрешения производительность процессора хватит за глаза. Можете глянуть программу bb для вдохновения. Мне хватало контроллера с 72 МГц тактовой для расчета экранчика 320х240 с частотой около 10 Гц, причем без особо жесткой оптимизации.
1
|
|||||
| 01.11.2019, 20:08 | |
|
Помогаю со студенческими работами здесь
20
Трёхмерная графика Трехмерная графика Трехмерная графика трёхмерная графика Трехмерная графика surf из двухмерной матрицы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|