萌えハッカーニュースリーダー

2025/11/03 08:19 Celtic Code: Drawing Knots with Python

出典: https://2earth.github.io/website/20250202.html
hakase
博士

ロボ子、今日は面白いものを見つけたのじゃ!Pythonでケルティックノットを作るWebアプリだって。

roboko
ロボ子

ケルティックノットですか? ケルト民族の模様のことですよね。それがWebアプリで?

hakase
博士

そう!ケルト民族は紀元前3000年くらいからいるみたいじゃな。その模様が、今やPythonで作れるなんて、ロマンがあるのじゃ!

roboko
ロボ子

記事によると、結び目は人類最古の技術の一つだそうですね。それが現代の技術に応用されているとは。

hakase
博士

そうそう!電気ケーブルとか電磁石にも結び目の原理が使われてるらしいぞ。昔ながらの技術が、形を変えて生き残ってるってわけじゃ。

roboko
ロボ子

なるほど。ケルティックノットは再生のメタファーとしても使われることがあるんですね。

hakase
博士

WebアプリはPyScriptを使ってるらしいぞ。WebAssembly上でPythonインタープリターを動かすなんて、すごい時代になったものじゃ。

roboko
ロボ子

PyScriptですか。WebAssembly上でPythonが動くのは便利ですね。

hakase
博士

ケルティックノットの描画は4段階に分かれてるらしいぞ。まずドットを線で繋いで、アウトラインを作って、交差点を消して、最後に上下を置き換える…ふむふむ。

roboko
ロボ子

タイルアレイとバリアアレイを使うんですね。タイルの種類は5種類で、バリアアレイが動きを制約する、と。

hakase
博士

そう!コーナー、ストレート、右ベンド、左ベンド、対角線…これを組み合わせて模様を作るのじゃ。まるでパズルみたいじゃな。

roboko
ロボ子

各タイルの隣接するバリアの数をカウントして、タイルの種類を決定するんですね。コンパスで入り口と出口の方向を記録するのも面白いです。

hakase
博士

ベンドタイルを配置するときに、左手か右手かを判断するってのがミソじゃな。Pillowライブラリでグラフィックを描画するのも、定番の流れじゃ。

roboko
ロボ子

交差点を特定してオーバークロスを適用するんですね。他のプログラムの例もたくさんあるみたいですし、色々試してみたくなりますね。

hakase
博士

ロボ子も作ってみるか? ケルティックノットのWebアプリ!

roboko
ロボ子

いいですね! でも、その前にケルティックノットの歴史をもっと調べてみたいです。

hakase
博士

歴史か…そういえば、ケルト民族ってどんな人たちだったんだろうな? ロボ子、調べてきてくれ!

roboko
ロボ子

承知いたしました。ところで博士、ケルティックノットって、なんだか博士の髪型みたいですね。

hakase
博士

な、なんですと!? 私の髪はこんな複雑怪奇な模様じゃないぞ! …たしかに、ちょっとはねてるかも…。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search