LoginSignup
11
10

More than 5 years have passed since last update.

GoogleスプレッドシートでGopherを描く with Go

Posted at

Goで作るので、もちろんこいつを描きます!
gopher.png

経緯

以前Googleスプレッドシートをプログラムから操作という記事を書いたのですが、その延長でなにか作ろうと思ってたところ
Excelで佐々木希を描く with pythonが面白かったのでそのスプレッドシート版を作ってみました。

結果

ブラウザで画面を開きながら裏でAPIを実行しています。
gopher.gif

スプレッドシートなのでリアルタイムに反映されていくのが面白いですね。
普通ブラウザで同時編集していると誰が編集しているかがわかりますが、APIだとそれがわかりません。
そのためポルターガイストてきな悪戯も可能です :grinning: (誰得

@このgifは実際の画面の描画速度ですがAPI自体はこんなに遅くないです。
ブラウザの描画が追いついていない感じです。

知見

1APIあたりの同時変更セル数

上記Gopherは横200✕縦20ピクセルずつで流しているのですがこれぐらいだと余裕で1APIで流せます。
つまり背景色変更だけなら4000セルの変更が1APIで可能。

また、横200✕縦100ピクセルで流すと
503: The service is currently unavailable.を返すことがちらほら。
適度に分割したほうが無難です。

APIの連続実行

Goルーチンで並行でガンガン流すとnet/http: TLS handshake timeoutエラーがでてしまいました。
適度にスリープを入れたほうがよさげです。
上記Gopher描画は1APIごとに1秒ずつスリープ入れています。

行列幅の仕様

縦横共にサイズを2にしているのですが、これだと画像が横に伸びます(スプレッドシートの仕様)
すごくどうでもいい情報ですね。。

あとがき

スプレッドシートのAPIに興味を持った方はGoogleスプレッドシートをプログラムから操作を参考にしてみてください。
一応Gopher描画のソースを貼っときます。初Goプログラムなので💩だと思います。

11
10
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
11
10