LoginSignup
9
1

More than 5 years have passed since last update.

数式でフォント作ってみた(ついでにbannerコマンドみたいなのをrubyで書いた)

Last updated at Posted at 2016-12-07

Okinawa.rb Advent Calendar 2016 7日目

事の発端

twitterでLOVEになる数式を見かけて、ちょっともうちょい綺麗にできそうじゃん、と思った
https://www.google.co.jp/search?q=all+you+need+is+love+math&tbm=isch
スクリーンショット 2016-12-07 21.44.40.png

結果


よし、じゃあアルファベット記号全部作ろう、と思ってやっているのがこちら(小文字はまだない)
https://github.com/tompng/mathfont

数式フォントの作り方

基本は円の式

スクリーンショット 2016-12-07 21.58.43.png

2乗の部分をちょっと変えるとなんか四角くなって
スクリーンショット 2016-12-07 21.58.54.png

あとは重ねたり
スクリーンショット 2016-12-07 22.00.08.png

滑らかにつなげたりしていくと
スクリーンショット 2016-12-07 21.59.03.png

最終的にこうなります
rb.png

@ $ R & あたりが難しかった

bannerコマンド風のプログラムを作ったので、遊んでみる

$ ruby mathfont.rb --size 16 ruby
|   ,ggggg,.                                                     
|   rMM#TTTMQ.      ug      ,p.     !MMpppppg,     :p,      .ua  
|   QM0    ^Mr      MM      rMr     rMTTTTTTMMg     ?Mg.   ,Q#   
|   #MM,  .pM<      MM      rMr     MM,.   ,pMT      ^TM,.pM*    
|   rMM#MMMM?       MM      rMr     MMMMMMMMM<         ?MM#      
|   rM0  0Mp        rM.     aM      MMT*???TMQ,         MMr      
|   rMr   MM,       ?MQ.   uM#      0M,,,,,,pMM         MMr      
|   rMr   <Mr        ?#MMMMMT       rMMMMMMM#T          MMr      
|   ^T^    *?           ??^          ??                 <M       

mathfontの出力をmathfontにつなげてみたらどうなるか

$ ruby mathfont.rb --size 14 ruby | ruby mathfont.rb --size 12

rbrb.png

さらにつなげてみる
$ ruby mathfont.rb --size 12 ruby | ruby mathfont.rb --size 5| ruby mathfont.rb --size 5

rbrbrb.png

それでは良い年末をー

ruby mathfont.rb --size 40 end
|                                                                                                                        
|                                                                                           .,,.                         
|       .g,.                                                                             .gQMMMMMppg,                    
|      .MMMMMMMMMMMMMMMMMMMMMMMpg,.                 ..               .,,                 MMMMMMMMMMMMMQ,.                
|      aMMMMMMMMMMMMMMMMMMMMMMMMMMV               ,QMMpu             QMM                !MMMMMMMMMMMMMMMMQg              
|      MMMMMTTTTTTTTTTTTTTTT*??^                  rMMMMMM,          rMMM                rMMMMMMT?  ^*T#MMMMMg.           
|      MMMM?                                      rMMMMMMM,         rMMM                MMMMMM^        ^*MMMMQu          
|     ,MMMM                                       rMMMMMMMMa        rMMM                MMMMM?            *MMMMp         
|     rMMMM                                       rMMMMMMMMMa       MMMM                MMMMM               #MMMQ.       
|     rMMMMa                                      rMMMMMMMMMMg      MMMM                MMMMM                #MMMr       
|     rMMMMMMMpppppppppppppppggg,,.               rMMMM^ VMMMMu     MMMM                MMMM0                rMMMM.      
|     rMMMMMMMMMMMMMMMMMMMMMMMMMMMMp              rMMM0   *MMMMu    MMMM                MMMMr                 MMMMr      
|     rMMMMMMMMMMMMMMMMMMMMMMM##TT*               rMMMr    ?MMMMp  rMMMM                MMMMr                !MMMM?      
|     rMMMM#??                                    rMMMr     <MMMMQgMMMMM                MMMMM                aMMM0       
|     rMMMM^                                      rMMMr      ?MMMMMMMMMM                MMMMM               uMMMM?       
|     <MMMM                                       rMMM^       *MMMMMMMMM                MMMMM.            .pMMMM^        
|      MMMM.                                      rMMM         *MMMMMMMM                MMMMMp          .gMMMM#^         
|      MMMMp,,,,,,,,,,,,,,,,.                     rMMM          ?MMMMMMM                0MMMMMp,    .,gQMMMMM?           
|      #MMMMMMMMMMMMMMMMMMMMMMMQpg,               rMM0           ^*MMMMM                rMMMMMMMMppQMMMMMM#?             
|      ?MMMMMMMMMMMMMMMMMMMMMMMMMT*               ?TT               ^T?                  MMMMMMMMMMMMMMT*^               
|       *#T*???????????????????                                                          *MMMMMMMMMMT?^                  
|                                                                                          ^*TT*?                        
|                                                                                                                        
9
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
1