Skip to content

Instantly share code, notes, and snippets.

View YuukiToriyama's full-sized avatar
🚲
On Cycling

ToriChan YuukiToriyama

🚲
On Cycling
  • Kyoto, Japan
View GitHub Profile
@YuukiToriyama
YuukiToriyama / caotic_view.sh
Created April 9, 2019 04:21
ImageMagickを使ってサイケ・アートをつくる
# convertコマンドのグラデーション機能の一つであるオペレーター「plasma」を使うとサイケデリックな画面を生成することができます。
# また、オプション「-swirl "角度"」を使うと画面をひん曲げることができます。
convert -size 500x500 -swirl 360 plasma:fractal clockwise.png
convert -size 500x500 -swirl -360 plasma:fractal anti-clockwise.png
# 時計回りに360度、半時計回りに360度変形させた2つの画像をcompositeコマンドを使って合成しています。それぞれの画像の差分を取って重ね合わせるため、-composeオプションにはdifferenceを指定しています。
composite -compose difference clockwise.png anti-clockwise.png output.png
@YuukiToriyama
YuukiToriyama / codepoint_to_character.rb
Created April 11, 2019 12:42
コードポイントから文字に起こすメソッド(仮)
#!/usr/bin/ruby
# 16進形式のUnicodeコードポイントをキャラクタに変換します
class String
def to_char()
self.to_i(16).chr("UTF-8")
end
end
# example「漢」
@YuukiToriyama
YuukiToriyama / 💩.sh
Created April 11, 2019 15:39
Cheap edition unko.tower
function tower_unko() { seq 1 $1 | xargs -I@ bash -c 'yes "+" | head -@ | xargs' | awk 'BEGIN{print " 👑"}{print "(", $0, ")"}'; }
tower_unko 5
# 👑
#( + )
#( + + )
#( + + + )
#( + + + + )
#( + + + + + )
@YuukiToriyama
YuukiToriyama / distort_arc.sh
Created April 13, 2019 10:33
imagemagickの画像を扇状に変形させるオプションを使って幾何学模様を作る
# pattern:でhs_diagcrossを指定すると網目模様を出すことができ、それを利用しています。
convert -size 1000x1000 pattern:hs_diagcross -virtual-pixel Tile -distort Arc 360
@YuukiToriyama
YuukiToriyama / article.md
Created April 14, 2019 17:21
dcコマンドで再帰計算

dcコマンドを使って計算しよう

最初の例: フィボナッチ数列を出力

echo "[lA p c lA lB + d sN lB d sA lN d sB lFx]d sF 1 sA 1 sB lFx" | dc | head -100

おおまかに説明すると、[ ]d sFが函数Fを定義する部分で、lFxによって定義した函数Fを実行しています。[ ]d sFのsとはsaveの意味で、式[ ]をレジスタFに保存するという意味があります。 ここでは函数Fもとい[ ]の中にそれを読み出して実行するlFxが含まれているため、再帰的な計算が可能になっているわけです。

例1:円周率の計算

@YuukiToriyama
YuukiToriyama / embed_text_in_ascii_art.sh
Last active April 26, 2019 08:33
シェル芸でアスキーアートに想いを込めよう
cat << EOF | sed 's/1/_/g'| tr "\n" " " > tmp; yes "Androidノカチ!マケタリユウ,アシタマデニカンガエトイテクダサイ.ホナ,イタダキマス!" | head -20 | grep -o . | xargs -I@ sed -i 's/0/@/' tmp; cat tmp | tr " " "\n"; rm tmp
1111111111111111111111111001111111111111
1111111111111111111111100001111111111111
1111111111111111111110000001111111111111
1111111111111111111100000011111111111111
1111111111111111111100001111111111111111
1111111111111111111100111111111111111111
1111111000000000000010000000000000111111
1111000000000000000000000000000000000111
1100000000000000000000000000000000000011
@YuukiToriyama
YuukiToriyama / communists_shellgei.sh
Created May 16, 2019 10:39
hard political shellgei
convert -size 700x300 xc:black -font Symbola -pointsize 300 -gravity center -fill white -draw 'text 0,0 "🗺"' -write mpr:A +delete -size 100x100 xc:red -font Symbola -pointsize 100 -fill yellow -gravity center -draw 'text 0,0 "★"' -write mpr:star +delete -size 700x300 tile:mpr:star mpr:A -compose multiply -composite redstars.png

完全にエクセル函数を頭に入れた人用の「セルの入力からグラフの作成まですべてをコマンド入力だけで済ませるプラグイン」みたいなのをつくろうかと思っている。

@YuukiToriyama
YuukiToriyama / 格子線を描く方法.md
Created May 20, 2019 08:27
Create vertical lines on canvas【ImageMagick】

ImageMagickで鉄格子を描く方法

convert -size 90x1 pattern:gray50 -scale 500x500! show:

画像の高さを1ピクセルにしてパターンを適用すると、ちょうと等間隔に黒い点が打たれるようになります。まずそのような細長の画像を作って、それを-scaleオプションを使って縦に引き伸ばします。

格子線の例

@YuukiToriyama
YuukiToriyama / bionomical_coefficient.bash
Created May 20, 2019 13:49
二項係数を計算するawkだけのゴリ押しワンライナー
#!/bin/bash
# Usage
# 先頭のecho ""にパスカルの三角形の何段目まで二項係数を計算したいか入力します。
# 8行目行中にある「{print $0}」の部分を削除すれば、パスカルの三角形は表示せずに求めたい段の二項係数のみが表示されるようになります。
# Copyright 2019 YUUKIToriyama All Rights Reserved
echo "10" | awk '{for (n=1; n<=$1; n++){ for (m=1; m<=n; m++){printf "$"m"+$"m+1","} printf "\n" }}' \
| awk 'BEGIN{printf "echo 1 1"}{printf " | awk \047{print $0}END{print 1," $0 "1}\047"}' \
| bash