2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Подскажите что забавного можно вывести в псевдографике :)
Сообщение19.11.2014, 02:13 


05/09/12
2587
На одном форуме инициативный участник предложил некий шуточный конкурс-забаву - написать программу (на Haskell, но это не принципиально), выводящую какую-нибудь интересную картинку на экран - в текстовом режиме, псевдографике, любыми доступными символами, статичную, без анимации. Конечно, не простым выводом заранее подготовленной таблицы, а что-нибудь поинтереснее. Уже начали выкладывать варианты - забавные изолинии функций двух переменных на ограниченном прямоугольнике, я выложил общую реализацию клеточного автомата с задаваемой окрестностью (Нейман/Мур), любыми правилами перехода (жизнь, автоматы Вольфрама–Паккарда и т.д.), начальным состоянием и количеством поколений. Но хотелось бы добавить что-нибудь еще. Что посоветуете, уважаемые участники форума? У меня была идея найти в интернете какой-нибудь пример фрактально сжатого изображения с рассчитанными параметрами, специально подобранными так, чтобы из простого исходного поля в результате простых же правил разархивации получить какую-нибудь интересную картинку, которую никак нельзя было предположить из скромных нескольких строчек кода. Или какую-нибудь простую комбинацию исходного состояния\правил L-Systems, которая преобразуется в живописный результат. Или муравья Ленгтона. Или что-нибудь сплайнами по небольшому количеству точек нарисовать, скрипичный ключ и т.п. - но это менее интересно, фрактально распакованная осмысленная картинка в псевдографике, возникающая из ниоткуда, имхо произвела бы большее впечатление :-)

 Профиль  
                  
 
 Re: Подскажите что забавного можно вывести в псевдографике :)
Сообщение19.11.2014, 02:20 
Заслуженный участник
Аватара пользователя


31/01/14
11017
Hogtown
Вполне известная

код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
 \let~\catcode~`z0
                       ~`'01~`,02~`406~`@11~`=13zdef
                   =41'~`4113zgdef,=$$41'~`4113zcountdef
                ,=++41'~`4113zlet,=AA'B!d6l;8p/Pa5Nr.eq3Ei[
             DSm@|H9c]o1M?TgJk-CF2*tnIj7Rf,=""'2d-NDDRIeMj|Nir
           -n-;.g./pjkCm1Bg;J7R3Ie!kmEae9djCEe6t8Dt@lpdCcM?or8m8
         rat]F3i.1m;[5M*agFiotMTml7a/Rd/pMe/|lB5-jca*iCIc!??9n.g!/
       mq2etc8MfSj8rmko-SSStB21plt?et5tNNT?BliPqi51Je8l|[-p.n.9/Tp[H
      a9[gkcTk[d/!ie5]F!iT[ri|kPDPHdaNrBp[Tp!.ra1j;.i8fd851i?BoS5||2m
     iE.F|Mq*.EcPq*-rB812?[C|MnCHnke|D13o|l3Rt/73p-[lf-/C3|kHan[Sqi!E2
    ltCiJEa*@]22dNng8RrpnoBk5DtH*9cH!rRdiEj|3tiBrPBBHEn8l|.e5593o3JPp;g
   i1pkS]Dp52SilElS-mt8l.2kgD]!ac]n-JPDReD@[JP?lNT6N-dEPNnNpIkNH/1@gNFCd
  e869SNnfCf9]*|6ni8BPeD7M519rq-;T3IPSt*6-F@@BP68D?-|/5DN?e5Hp3[BBHNk31|H
 9ge.maeERBqTc3tp@pNIpDtEqMeS.pe5FmHJ.-eDmpmC.8P;g1!1/[PDt/JDH1Bl]@1qmlPiJ
 N*PacC?1md;!!NE/k.S99I98gqpcn9c8NaEao[!1!kJfm99adfi1jp*/5Dea-R-1d8;I?|gPl
 ][ai-;8kgHlJ?cS3S-ic;ceE.EJn|nke2;Sa1!FIoadp1EBCig*[//9|55DJ.cqDB@6lERPP5-q
 cC.go-n3fE5;7-9faJf8Fo]gcEHa6.midi@f-/CHNHe/R7p|dqp|@do-q2qB3NEalCold3?*8B6
 D1jFq7-Ek@.icJ]l|F@-]n-HprI@pJNBCccN*;NR5lk.!5!M?M*ID;e@7ce/!Ef[ggt5jiHP/]N
 F-p1e[ESmS@g-kc;/p29[HE/MSnClCkMtn1ppHJ*g[f@Ilak6DeJM..o.;?P/19I-?!BE*]a!lq
 /an?5D7l9M]98d2M32|DJ2?5r|5Be|aa1J]|]Mn]TTqa?.k[ki2qrlfoHc@E;8R9Djime;J]M5S
 NiS;S[FPe91Ht-FR|aN..m6n99SeP7tT8qoRqecn97gHE/E!om?9]E9dPDTB*Pdt[dolk/kRj9o
 ]/RH9NfD8Rq2ra/2/N[H5J.aI3SkadJpfRDFT/mr]ECdPm|TTJDe1.;9.!mk-a.qCorTm*DfDp?
 Eqk2cI!JfNojFTPt@fSeCpaI!6C;TSd!|T?fFoNgJ@p|R8|aRHf16NPlrkiTnDgBdJ;Nn6D*ocn
 kC8?r2TgF?68PDF7aN*9.68|1gg31.B-k3-I;5]2kRplq..]j|Eq5JmeE7iSI;;fp/25|/-gE
 -Tdqf;D*S6RFg9@|n*mRJS?9orI/HNJiT|o!8,=[[',+]][$CC0C0$TT1T25+&&zadvance+*
  *zmultiply+//zdivide+##zifnum[[+))zfi+((zifx+||zelse[[+>>zexpandafter+;
   ;zxdef[[+::zgdef[[=z}}4142'>;zcsname41zendcsname'42,,[[=z{{41'zcsname
    41zendcsname,[[=!!41';]']41,,+z\\zthe[[=PP4142$'}41'\C,&C1:A'42,,=V
     V'>PA$(A]|>V),V=GG'TC/C10*C10&T-C/C10!'\T,,[=DD414243'>C{'43,*C50
      >T{'42,&CT*C50>T{'41,&CTGGGGGzfutureletAV,=YY41',:V'(A$>Y|>D),!
       3!.>D"$$RR2R38$YY3Y-R&Y1$XX5[[=SS4142$'41:]'42,,=OO'>S]$,[[=Q
         Q41'T41*T41&CT,=HH'C0QXQYC-CQR,=BB'#X<RH#C<0P|O)&X1>B),=L
           L'#Y<RX-Rzhbox'B,&Y2>L),=PP'zhskip0.5em,zvbox'zttL,[:
             Y41',;A'bYryYge,=::41i'>{>'A,,~`412:stephen.hicks
                3.14159265358979323846264338327950288419716
                   9399375105820974944592307816406286208
                       99862803482534211706798214808
                             ..........kthxbai

 Профиль  
                  
 
 Re: Подскажите что забавного можно вывести в псевдографике :)
Сообщение19.11.2014, 02:36 


05/09/12
2587
Red_Herring, спасибо, но я предполагаю, что вы с Tex-ом на ты, но я сейчас попробовал окружить ваш код тегами
Код:
[math]$$[/math] и [math][/math] и $$
, и не вижу результата ни при каком варианте, а дальше моя фантазия закончилась. Подскажите, если не трудно, суть преобразований и как хотя бы выглядит результат. Все равно мне переписывать под другую платформу.

 Профиль  
                  
 
 Re: Подскажите что забавного можно вывести в псевдографике :)
Сообщение19.11.2014, 04:59 
Заслуженный участник
Аватара пользователя


31/01/14
11017
Hogtown
Это plain TeX. Форумный LaTeX его не процессирует. Результат—круг заполненный последовательными цифрами $\pi$.

А в LaTeX есть пакет shapepar позволяющий выстроить текст в одной из предопределенных форм (включая флаг Канады)


Вложения:
pi.pdf [19.39 Кб]
Скачиваний: 76
 Профиль  
                  
 
 Re: Подскажите что забавного можно вывести в псевдографике :)
Сообщение19.11.2014, 05:14 


05/09/12
2587
Спасибо. Приведенный код не понимаю, но навскидку особо сложностей с выводом не вижу, даже при переменном радиусе круга, только расчет многих знаков числа пи разве - надо придумать/поискать алгоритм. Хотя, недавно я все-таки научился быстро вычислять миллионные числа Фибоначчи, а их отношение дает золотое сечение вроде, если реализовать школьное деление столбиком, то можно много десятичных знаков получить. Может и с пи что-то подобное можно организовать.

ЗЫ нашел забавную ссылку - кривая дракона, реализация на разных языках, в том числе и с использованием упоминаемых L-Systems и даже несколько вариантов именно в псевдографике. У меня пока примерно такие картинки:

(Оффтоп)

Код:
                         N                              NNN             NNN             NNN             NNN      NNNN          NNNNNN         NNNNNN          NNNN
                        NNN                             NN               N               N               NN       NN            NN  N         N  NN            NN 
                         N                              N NNN NNN NNN NNNN               NNNN NNN NNN NNN N       NN            NN               NN            NN 
                        NNN                               NN   N   N   N N               N N   N   N   NN       NN  N      NNNNNNN   NNNNNNNNN   NNNNNNN      N  NN
                       N N N                              N NNNN   NNNNN NN             NN NNNNN   NNNN N           N      NN N    N           N    N NN      N   
                      NNNNNNN                               NN       N N                   N N       NN             N        N     N           N     N        N   
                     N N N N N                            N N NNN NNNN                       NNNN NNN N N           NN       N      N         N      N       NN   
                    NNN NNN NNN                           NNN NN   N N N                   N N N   NN NNN               N         NN     N     NN         N       
                 N N N N N N N N N                        N   N NNNN NNN                   NNN NNNN N   N                NN       NN    N N    NN       NN         
                NNNNNNNNNNNNNNNNNNN                             NN                               NN                   NNN        NN    N   N    NN        NNN     
                 N N N N N N N N N                        N   N N NNN NNN NNN NNN NNN NNN NNN NNN N N   N            NNNN        NNN    NNN    NNN        NNNN     
                    NNN NNN NNN                           NNN NNN NN   N   N   N   N   N   N   NN NNN NNN            N      NN    NNN    N    NNN    NN      N     
                     N N N N N                            N N N   N NNNN   NNNNN   NNNNN   NNNN N   N N N            NN NNNNNN    N N    N    N N    NNNNNN NN     
                      NNNNNNN                               NNNNN   NN       N N   N N       NN   NNNNN              NNNNNN  N   NN N         N NN   N  NNNNNN     
                     N N N N N                            N N   N N N NNN NNNN       NNNN NNN N N N   N N                   N    NNN           NNN    N           
                    NNN NNN NNN                           NNNN NN NNN NN   N N N   N N N   NN NNN NN NNNN                   N   NN               NN   N           
         N         N N N N N N N         N              N N       N   N NNNN NNN   NNN NNNN N   N       N N     NN         N   NNN    NN   NN    NNN   N         NN
        NNN       NNNNNNNNNNNNNNN       NNN             NNNNN           NN               NN           NNNNN       N NNNN   N   NN     N     N     NN   N   NNNN N 
         N       N N N N N N N N N       N              N   N     N   N N NNN NNN NNN NNN N N   N     N   N       NN   N   N           N   N           N   N   NN 
        NNN     NNN NNN NNN NNN NNN     NNN                       NNN NNN NN   N   N   NN NNN NNN                NNN    N  NN  N        NNN        N  NN  N    NNN
       N N N   N N N N N N N N N N N   N N N                      N N N   N NNNN   NNNN N   N N N                 NN     N  NNNNNN   NN     NN   NNNNNN  N     NN 
      NNNNNNN NNNNNNN NNNNNNN NNNNNNN NNNNNNN                       NNNNN   NN       NN   NNNNN                      N    NNNN  NN   NNN   NNN   NN  NNNN    N     
     N N N N N N N N N N N N N N N N N N N N N                    N N   N N N NNN NNN N N N   N N                    N       NN NNN   NN   NN   NNN NN       N     
    NNN NNN NNN NNN NNN NNN NNN NNN NNN NNN NNN                   NNNN NN NNN NN   NN NNN NN NNNN                    N        NNN                 NNN        N     
N N N N N N N N N N N N N N N N N N N N N N N N N                N       N   N NNN N   N       N                    N     NNNNN NNN           NNN NNNNN     N     
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN                             NNN                                  N   N   NNN NNN           NNN NNN   N   N     
N N N N N N N N N N N N N N N N N N N N N N N N N                N       N   N NNN N   N       N                    N     NNNNN NNN           NNN NNNNN     N     
    NNN NNN NNN NNN NNN NNN NNN NNN NNN NNN NNN                   NNNN NN NNN NN   NN NNN NN NNNN                    N        NNN                 NNN        N     
     N N N N N N N N N N N N N N N N N N N N N                    N N   N N N NNN NNN N N N   N N                    N       NN NNN   NN   NN   NNN NN       N     
      NNNNNNN NNNNNNN NNNNNNN NNNNNNN NNNNNNN                       NNNNN   NN       NN   NNNNN                      N    NNNN  NN   NNN   NNN   NN  NNNN    N     
       N N N   N N N N N N N N N N N   N N N                      N N N   N NNNN   NNNN N   N N N                 NN     N  NNNNNN   NN     NN   NNNNNN  N     NN 
        NNN     NNN NNN NNN NNN NNN     NNN                       NNN NNN NN   N   N   NN NNN NNN                NNN    N  NN  N        NNN        N  NN  N    NNN
         N       N N N N N N N N N       N              N   N     N   N N NNN NNN NNN NNN N N   N     N   N       NN   N   N           N   N           N   N   NN 
        NNN       NNNNNNNNNNNNNNN       NNN             NNNNN           NN               NN           NNNNN       N NNNN   N   NN     N     N     NN   N   NNNN N 
         N         N N N N N N N         N              N N       N   N NNNN NNN   NNN NNNN N   N       N N     NN         N   NNN    NN   NN    NNN   N         NN
                    NNN NNN NNN                           NNNN NN NNN NN   N N N   N N N   NN NNN NN NNNN                   N   NN               NN   N           
                     N N N N N                            N N   N N N NNN NNNN       NNNN NNN N N N   N N                   N    NNN           NNN    N           
                      NNNNNNN                               NNNNN   NN       N N   N N       NN   NNNNN              NNNNNN  N   NN N         N NN   N  NNNNNN     
                     N N N N N                            N N N   N NNNN   NNNNN   NNNNN   NNNN N   N N N            NN NNNNNN    N N    N    N N    NNNNNN NN     
                    NNN NNN NNN                           NNN NNN NN   N   N   N   N   N   N   NN NNN NNN            N      NN    NNN    N    NNN    NN      N     
                 N N N N N N N N N                        N   N N NNN NNN NNN NNN NNN NNN NNN NNN N N   N            NNNN        NNN    NNN    NNN        NNNN     
                NNNNNNNNNNNNNNNNNNN                             NN                               NN                   NNN        NN    N   N    NN        NNN     
                 N N N N N N N N N                        N   N NNNN NNN                   NNN NNNN N   N                NN       NN    N N    NN       NN         
                    NNN NNN NNN                           NNN NN   N N N                   N N N   NN NNN               N         NN     N     NN         N       
                     N N N N N                            N N NNN NNNN                       NNNN NNN N N           NN       N      N         N      N       NN   
                      NNNNNNN                               NN       N N                   N N       NN             N        N     N           N     N        N   
                       N N N                              N NNNN   NNNNN NN             NN NNNNN   NNNN N           N      NN N    N           N    N NN      N   
                        NNN                               NN   N   N   N N               N N   N   N   NN       NN  N      NNNNNNN   NNNNNNNNN   NNNNNNN      N  NN
                         N                              N NNN NNN NNN NNNN               NNNN NNN NNN NNN N       NN            NN               NN            NN 
                        NNN                             NN               N               N               NN       NN            NN  N         N  NN            NN 
                         N                              NNN             NNN             NNN             NNN      NNNN          NNNNNN         NNNNNN          NNNN

 Профиль  
                  
 
 Re: Подскажите что забавного можно вывести в псевдографике :)
Сообщение19.11.2014, 10:29 
Заслуженный участник
Аватара пользователя


18/05/06
13435
с Территории
http://thedailywtf.com/articles/Stupid- ... Mandelbrot

 Профиль  
                  
 
 Re: Подскажите что забавного можно вывести в псевдографике :)
Сообщение19.11.2014, 18:58 


05/09/12
2587
ИСН, спасибо, интересно, попробую разобраться.
Red_Herring, не прошло и суток, как я понял вашу мысль - написать программу, выводящую любой заранее заданный текст внутри заранее заданных областей - круга, смайлика - как круга, двух других и полумесяца, и т.п. Причем, для областей, задаваемых многоугольниками, я даже знаю как это реализовать. Осталось добавить еще кривые Безье хотя бы второго порядка - и можно будет любые контуры областей задавать, должно быть красиво. Еще раз спасибо за идею.

 Профиль  
                  
 
 Re: Подскажите что забавного можно вывести в псевдографике :)
Сообщение21.11.2014, 10:04 


05/09/12
2587
Не прошло и вторых суток, как я понял, что изобретаю алгоритм True Type шрифтов. Осталось только полторы технические проблемы решить - заполнить массив точек контура (глиф вроде называется) и красиво его залить - желательно в общем случае, с наличием областей стыков и точек самопересечения контура, хотя если это будет нетривиально, можно ограничиться замкнутыми контурами без самопересечений, но области внутренних стыков за счет округления к крупной сетке надо будет как-то учитывать при заливке.

 Профиль  
                  
 
 Re: Подскажите что забавного можно вывести в псевдографике :)
Сообщение23.11.2014, 22:43 


05/09/12
2587
Еще раз спасибо, в первом приближении все получилось :-)
Код:
                                             
                   Any_may                   
             be_long_text:)Any_m             
         aybe_long_text:)Any_maybe_l         
       ong_text:)Any_maybe_long_text:)       
      Any_maybe_long_text:)Any_maybe_lo     
    ng_text     :)Any_maybe_l     ong_tex   
   t:)Any         _maybe_lo         ng_tex   
  t:)Any           _maybe_           long_t 
  ext:)A           ny_mayb           e_long 
_text:)           Any_may           be_long
_text:)A         ny_maybe_         long_tex
t:)Any_may     be_long_text:     )Any_maybe
_long_text:)Any_maybe_long_text:)Any_maybe_
long_text:)Any_maybe_long_text:)Any_maybe_l
  ong_t  ext:)Any_maybe_long_text:)A  ny_ma 
  ybe_lo    ng_text:)Any_maybe_lo    ng_tex 
   t:)Any        _maybe_long        _text:   
    )Any_ma                       ybe_lon   
      g_text:)                 Any_mayb     
       e_long_tex           t:)Any_may       
         be_long_text:)Any_maybe_lon         
             g_text:)Any_maybe_l             
                   ong_tex                   
                                             

ЗЫ тут в теге code форматирование почему-то съезжает немного, на самом деле все ровно и красиво.

 Профиль  
                  
 
 Re: Подскажите что забавного можно вывести в псевдографике :)
Сообщение23.11.2014, 23:50 


05/09/12
2587
ЗЫ желающие дать примеры контуров, состоящих из прямых и кривых Безье любого порядка, могут написать здесь координаты их узловых и опорных точек, попробую построить залитые области. Можно хоть звезду давать не по внешнему контуру, а со множеством внутренних самопересечений - зальет отлично, я даже немного горд алгоритмом заливки. Да, координаты желательно от 0 до 250 по горизонтали и от 0 до 500 по вертикали (узловые точки, опорные могут вылезать за пределы этой области), иначе при самом маленьком шрифте в экран не влезет :-) И замкнутых полигонов можно любое количество дать - зальет их объединение с учетом инверсии.

 Профиль  
                  
 
 Re: Подскажите что забавного можно вывести в псевдографике :)
Сообщение24.11.2014, 01:35 
Заслуженный участник


27/04/09
28128

(Оффтоп)

Если что, съезжающий код можете записывать на http://pastebin.com или http://pastee.org.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group