Форум программистов, компьютерный форум, киберфорум
C (Си)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 05.03.2023
Сообщений: 3

3d ASCII анимация

06.03.2025, 03:33. Показов 4822. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел на Git проект, в котором парень написал анимацию куба в консоли, хотелось бы разобраться, какие изменения можно внести в код, для отображения других объектов, например трехмерная анимация буквы 'K'
код проекта main.txt
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
#include <math.h>
#include <string.h>
float a[16] = {0.625 , 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 1, 0, 0,-0.1, 0.1}; 
float g[16]={1, 0,0 , 0, 0, 1, 0, 0,0,0,1,0,0,0,-3,1};
float v; 
char c[2025];
int main(){                                 
      memset(c,10,2023);
      for(;;) {*g=cos(v-= 0.001);
      g[2]=sin(v);
      g[8]=-sin(v);
      g[10]=cos(v);
         float  s[16]={0};
         for(int   i=0;i<2000 ;i++){
          c[i/80*81+i%80]=32; 
          if(i< 64)
          s[i/16*4+ (i%16)/4]+= g[i/16*4+(i%4)]*a[(i% 4)*4+(i%16)/4];}                              
     for(int i=0;i<8;i++){
         float  m[3][3];
         for(int j =0;j<3;j++){                   
          for(int k=0;k<3;k++)
          {m[j][k]= ("!!!  "
         "!! !"                            " !!     !!! ! !!"                              "   ! !     "
         "!!! !!"                                "  ! !! !    !"                             "! !!!! ! !"
         " !! !  "  [i*9+3 *j+k]-32)*2-  1; }                                       
          float w=*m[j]* s[3]+m[j][1]*s[7]+ m[j][2]*s[11]+s[15];
          for (int k=0;k<  3;k++) {
               m[j][k]=(*m [j]*s[k]+m[j][1]*s[4+k]+ m[j][2]*s[8+k]+s[12+k])/w;}*m[j]=(*m[j]+1)/2*80 ;
               m[j][1]=(m[j][1]*-1+1)/2*25;}
         for(int j=0;j<2000; j++){            
          if(((j %80-*m[ 0])*(m[1][1]-m[0][1])-(j/80-m[0][1])*(*m[1]-*m[0])>=0 )
          &((j%80-*m[1])*(m[2][1]-m[1][1])-(j/80-m[1][1])*(*m[2]-*m[1])>=0)
          &((j%80-*m[2])*(m[0][1]-m[2][1])-(j/80-m[2][1])*(*m[0]-*m[2])>=0))
          {
               c[j/80   *81+(j%80)]=45;
               if(i==0||i==4)c[j/80*81+(j%80)]=35;
               }}}
     puts(c);}}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.03.2025, 03:33
Ответы с готовыми решениями:

Анимация с ASCII-графикой. Нужен пример кода
У кого есть пример анимации ASCII-графикой исходного кода C++

Перевод ASCI в ASCII и наоборот
Добрый день учень нужна помощь... немогу никак разобраться с проблемой перевода кодировок, мне нужно чтоб в окне dos да и в текстовые файлы...

Вывод в COM-порт ASCII
Привет. Сразу извиняюсь может задам глупый вопрос, но он таков: как вывести в COM-порт ASCII символ например &lt;CR&gt;(0x0D)? С открытием...

5
Злостный нарушитель
 Аватар для Verevkin
10360 / 5775 / 1275
Регистрация: 12.03.2015
Сообщений: 26,692
06.03.2025, 08:06
Цитата Сообщение от ipvHEEL Посмотреть сообщение
Git проект, в котором парень написал анимацию куба в консоли, хотелось бы разобраться, какие изменения можно внести в код, для отображения других объектов
Ну так свяжись с парнем да спроси поинтересуйся.
------
Хотя, если честно, код выглядит так, будто он после обфускации.
1
0 / 0 / 0
Регистрация: 05.03.2023
Сообщений: 3
06.03.2025, 09:43  [ТС]
К сожалению, автор не указал свои соц. сети и да, вы правы, изначально код был в виде куба=)
0
Злостный нарушитель
 Аватар для Verevkin
10360 / 5775 / 1275
Регистрация: 12.03.2015
Сообщений: 26,692
06.03.2025, 22:42
Цитата Сообщение от ipvHEEL Посмотреть сообщение
К сожалению, автор не указал свои соц. сети
Ну хоть e-mail он указал? Это же git-проект, ведь? Дай ссылку, я посмотрю.
0
 Аватар для sporta1982
213 / 59 / 7
Регистрация: 05.10.2023
Сообщений: 504
08.03.2025, 23:43
здесь не нужны изменения в код, просто нужно вспомнить линейную алгебру, и еще добавить перспективу... это по сути маленька 3D игра можно сделать , немножко подумать надо просто.... Начните с поворта квадрата на плоскости , а дальше можно изучать.....
0
 Аватар для MallSerg
91 / 58 / 14
Регистрация: 16.11.2018
Сообщений: 274
09.03.2025, 12:18
Цитата Сообщение от ipvHEEL Посмотреть сообщение
какие изменения можно внести в код, для отображения других объектов, например трехмерная анимация буквы 'K'
Кардинальные т.к. в этом коде совсем нет каких либо геометрических объектов.
Логика расчетов строится на заполнении пространства между периодами периодических тригонометрических функции как sin и cos =).

От нечего делать накидал примерчик попроще для понимания.
Зеленые точки можно заменить на точки которые нарисуют нужную тебе букву =).
https://www.shadertoy.com/view/3fjSRz
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.03.2025, 12:18
Помогаю со студенческими работами здесь

Преобразование ASCII код.
Вот задачка: Ввести в консоли строку из пяти прописных латинских символов, преобразовать их в соответствующие строчные символы с помощью...

Перевести текст в кодировку ASCII
перевести текст&quot;Daria&quot; в код ASCII

Как передать символ(байт||код ASCII) на COM порт и считать с него?
Кто нить работал с COM портом? Может кто нить сказать как к нему обратится? Как передать символ(байт||код ASCII) на COM порт и считать с...

ASCII-строки
как выглядят ASCII-строки в файле txt?

ASCII код
Всем привет ! Подскажите как перевести к примеру символ 'a' в код ASCII и обратно ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru