以下のツイートに書いているとおり、 @tkyko13 さんに聞いて JavaScriptライブラリの「g.js」というものを初めて知りました。
今回の記事の内容は、これを軽く試していく、というものです。
FYIですが、g.jsはcompound領域をとることができたり便利なところもあり、たまに使って作品作っています。https://t.co/sNd2shsC7jhttps://t.co/IfJmwb2gDZ
— Tetsunori NAKAYAMA | 中山 哲法 (@tetunori_lego) February 5, 2022
なお、たまにエラーで止まる不具合があるので以下ツイートの通り、修正したバージョンを公開していたりします。https://t.co/Kz43nv01Lv
あと、g.js を知ったという話をツイートしたら、上記のように @tetunori_lego さんから情報をいただいたりもできました。ありがたいです!
ちなみに知った経緯は、こちらのもくもく会に参加している中で雑談をしていて聞いた、という流れでした。
●【ゆるく参加OK】2/5開催ニコニコ!プロトタイピングもくもく会 第18回 - connpass
https://protoout.connpass.com/event/237271/
g.js の情報を見ていく
それでは、公式のページを見ていきます。
●g.js
https://g.js.org/
どのようなことができるかは、右上のメニューの「Reference」を選んで、表示される内容を見るのが良さそうです。
(個人的に、このページのデザイン、好きだな・良いなと思いました)
●Reference — g.js
https://g.js.org/ref/
そして、サクッと試すならクイックスタートを選ぶのが良さそうです。
●Quick Start — g.js
https://g.js.org/guide/quick-start.html
クイックスタートを試す
「Quick Start — g.js」のページには、以下でライブラリを読み込めるということが書いてありました。
<script src="https://cdn.rawgit.com/nodebox/g.js/master/dist/g.min.js"></script>
var は const や let に書きかえたり、ということをやったり、少し変更した部分はありますが、上記の公式のクイックスタートの内容をベースにしたものを作ってみました。
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.rawgit.com/nodebox/g.js/master/dist/g.min.js"></script>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Web Serial(Read)</title>
<style>
html,
body {
width: 100%;
height: 100%;
overflow: hidden;
}
</style>
</head>
<body>
<h1>g.jsを試す</h1>
<canvas id="c"></canvas>
<script>
const c = document.getElementById('c');
c.width = window.innerWidth;
c.height = window.innerHeight;
const ctx = c.getContext('2d');
ctx.translate(c.width / 2, c.height / 2);
let path = g.ellipse(0, 0, 100, 100);
path = g.colorize(path, 'teal');
path.draw(ctx);
</script>
</body>
</html>
なお、上で画像で貼り付けた公式サンプルは、そのまま実行すると黒い円が表示されると思います。ソースが書いてあった下を見てくと、以下のような記載があり、これを加えると色付の円を描かれるようになります。
自分が用意したものは、その色をつける部分も追加済みのものになります。
それを実行してみると、以下のとおり想定通りの結果が得られました。
おわりに
今回、JavaScriptライブラリ「g.js」を軽く試してみました。
リファレンスを見ていると色々な処理が扱えるようで、ざっと見た中では以下の glow が気になったりしました。
上記も含め、いろいろ g.js を試してみられたらと思っています。
【追記】 その後、p5.js との組み合わせを軽く試しました
●g.js ・ p5.js の 2つの JavaScriptライブラリの組み合わせを試す(g.js公式の Quick Start をベースに) - Qiita
https://qiita.com/youtoy/items/912dcc43b1dcd2dcb9d5