2014 dxdy logo

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

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




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

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

код: [ скачать ] [ спрятать ]
Используется синтаксис 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 
Red_Herring, спасибо, но я предполагаю, что вы с Tex-ом на ты, но я сейчас попробовал окружить ваш код тегами
Код:
[math]$$[/math] и [math][/math] и $$
, и не вижу результата ни при каком варианте, а дальше моя фантазия закончилась. Подскажите, если не трудно, суть преобразований и как хотя бы выглядит результат. Все равно мне переписывать под другую платформу.

 
 
 
 Re: Подскажите что забавного можно вывести в псевдографике :)
Сообщение19.11.2014, 04:59 
Аватара пользователя
Это plain TeX. Форумный LaTeX его не процессирует. Результат—круг заполненный последовательными цифрами $\pi$.

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


У вас нет доступа для просмотра вложений в этом сообщении.

 
 
 
 Re: Подскажите что забавного можно вывести в псевдографике :)
Сообщение19.11.2014, 05:14 
Спасибо. Приведенный код не понимаю, но навскидку особо сложностей с выводом не вижу, даже при переменном радиусе круга, только расчет многих знаков числа пи разве - надо придумать/поискать алгоритм. Хотя, недавно я все-таки научился быстро вычислять миллионные числа Фибоначчи, а их отношение дает золотое сечение вроде, если реализовать школьное деление столбиком, то можно много десятичных знаков получить. Может и с пи что-то подобное можно организовать.

ЗЫ нашел забавную ссылку - кривая дракона, реализация на разных языках, в том числе и с использованием упоминаемых 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 
Аватара пользователя
http://thedailywtf.com/articles/Stupid- ... Mandelbrot

 
 
 
 Re: Подскажите что забавного можно вывести в псевдографике :)
Сообщение19.11.2014, 18:58 
ИСН, спасибо, интересно, попробую разобраться.
Red_Herring, не прошло и суток, как я понял вашу мысль - написать программу, выводящую любой заранее заданный текст внутри заранее заданных областей - круга, смайлика - как круга, двух других и полумесяца, и т.п. Причем, для областей, задаваемых многоугольниками, я даже знаю как это реализовать. Осталось добавить еще кривые Безье хотя бы второго порядка - и можно будет любые контуры областей задавать, должно быть красиво. Еще раз спасибо за идею.

 
 
 
 Re: Подскажите что забавного можно вывести в псевдографике :)
Сообщение21.11.2014, 10:04 
Не прошло и вторых суток, как я понял, что изобретаю алгоритм True Type шрифтов. Осталось только полторы технические проблемы решить - заполнить массив точек контура (глиф вроде называется) и красиво его залить - желательно в общем случае, с наличием областей стыков и точек самопересечения контура, хотя если это будет нетривиально, можно ограничиться замкнутыми контурами без самопересечений, но области внутренних стыков за счет округления к крупной сетке надо будет как-то учитывать при заливке.

 
 
 
 Re: Подскажите что забавного можно вывести в псевдографике :)
Сообщение23.11.2014, 22:43 
Еще раз спасибо, в первом приближении все получилось :-)
Код:
                                             
                   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 
ЗЫ желающие дать примеры контуров, состоящих из прямых и кривых Безье любого порядка, могут написать здесь координаты их узловых и опорных точек, попробую построить залитые области. Можно хоть звезду давать не по внешнему контуру, а со множеством внутренних самопересечений - зальет отлично, я даже немного горд алгоритмом заливки. Да, координаты желательно от 0 до 250 по горизонтали и от 0 до 500 по вертикали (узловые точки, опорные могут вылезать за пределы этой области), иначе при самом маленьком шрифте в экран не влезет :-) И замкнутых полигонов можно любое количество дать - зальет их объединение с учетом инверсии.

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

(Оффтоп)

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

 
 
 [ Сообщений: 11 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group