SlideShare a Scribd company logo
1 of 48
Processingによる可視化と
装飾的模様生成の技法
巴山竜来 Tatsuki Hayama
数学ソフトウェアと
フリードキュメントXXVIII
March 16, 2019
数学から創るジェネラティブアート
Processingで学ぶかたちのデザイン
技術評論社 2019年4月17日発売
第I部 数
1. ユークリッド互除法
2. 連分数
3. フィボナッチ数列
4. 対数らせん
5. フェルマーらせん
6. 合同な数
7. セルオートマトン
第II部 タイリング
8. 行列の織りなす模様
9. 正多角形の対称性
10. 正多角形によるタイリング
11. 正則タイリングの変形
12. 周期性と対称性を持つ模様
13. 周期タイリング
14. 準周期タイリング
Processingとは
• JAVAをグラフィックスに特化し簡易化したプロ
グラミング言語
• プログラミング環境構築が容易
• オープンソースプロジェクト
• JavaScript版p5.jsなどwebへの応用が効く
図形の描画
ellipse() rect() bezier()
線形変換
scale() rotate() translate()
1. 平面タイリング
定義 𝑇𝑖 𝑖 ∈ 𝐼} が以下を満たすとき、(平面)タイリング
と呼ぶ
• 𝐼は可算無限添字集合
• 𝑖∈𝐼 𝑇𝑖 = ℝ2
• すべてのタイル𝑇𝑖は連結コンパクト
• タイルどうしは境界で接する
• 平面タイリングの合同変換群が2方向の格子を部
分群として含むとき、周期タイリングと呼ばれる
• 周期タイリングの合同変換群(壁紙群)は17種類に
分類できる
1.1 周期タイリング
正則タイリング
• 1種類の正多角形タイルによるタイリングを正則
タイリングと呼ぶ
• 正則タイリング可能な正𝑛角形は𝑛 = 3,4,6に限ら
れる
正方格子六角格子
正方形/正六角形タイリングの実装
1. 格子を張るベクトルをつくる
2. 正方形/正六角形タイルをつくる
3. 格子に従ってタイルを並べる
正三角形タイリングの実装
1.正三角形タイル6つを正六角形に並べたグルー
プをつくる
2.正六角形グループを六角格子に従って並べる
タイリングの双対性
正三角形
頂点
辺
面
正六角形
面
辺
頂点
シュレーフリ記号
(36
) (63
)
半正則タイリング
• 2種類以上の正多角形によるタイリングを半正則
タイリングと呼ぶ
• 半正則タイリングは8種類に限られる
By Tomruen - Own work, CC BY-SA 4.0,
三角形と正方形によるタイリング
正方形の分割 鏡映変換によるコピー
三角形と正方形によるタイリングの実装
1. 正方形タイルを分割する
2. 分割した正方形タイルを鏡
映コピーし,正方形に並べ
たグループをつくる
3. 正方形グループを正方格子
に従って並べる
合同変換群の構造
壁紙群p4g
• 正方格子
• 90°回転
• 2方向の鏡映
• 4方向のすべり鏡映
双対五角形タイリング
等面(isohedral)タイリング
1枚のタイルを固定すれば,
合同変換群による軌道から
タイリングが得られる
双対等面タイリング
• 半正則タイリングの双対によって得られる等面タ
イリングはLavesタイリングと呼ばれる
By Tomruen - Own work, CC BY-SA 4.0,
等面タイリング:タイル張り
等面タイリングの変形
等面タイリングの変形
等面タイリング:M. C. Escher
M.C. Escher's “Symmetry Drawing E02”
no image
等面タイリングの変形
pgg
等面タイリング
• 等面タイリングは正則タイリング、またはLaves
タイリングのどれかと同相(Grünbaum-
Shephard)
• 辺の変形は93種類に分類できる(Grünbaum-
Shephard)
• 頂点の移動による変形は43種類に分類できる
(Kaplan)
等面タイリングの変形の実装
IH01
1. 正六角形タイルの辺をラ
ベル付け
2. 辺の接合を保つようにタ
イルを変形
3. 六角格子に従ってタイリ
ング
IH01タイリング
ピタゴラスタイリング
•2種類の正方形によるタイリング(non-edge-to-edge)
No machine-readable author provided. Roger McLassus 1951 assumed (based on copyright claims). [CC BY-SA 3.0]
ピタゴラスタイリング
1.2 準周期タイリング
• 周期性を持たないタイリングを非周期タイリング
と呼ぶ
• ある種の「おもしろい」特性を持つ非周期タイリ
ングを準周期タイリングと呼ぶ
おもしろくない非周期タイリング
フィボナッチチェイン
• 1次元のタイリングは直線を区間のあつまりと見た鎖
(チェイン)であり、記号列(ワード)と見なせる
• {A, B}を次のルールで置き換える
• A→AB
• B→A
A→AB→ABA→ABAAB→ABAABABA→…
このワードは周期性を持たず、A(またはB)の個数はフィ
ボナッチ数列をなす
Cut and Projection Scheme
• 黄金比のピタゴラスタイリン
グの切断面としてフィボナッ
チチェインがあらわれる
• ある種の準周期タイリングは
高次元格子の切断と射影から
つくることができる
ペンローズタイリング
• 黄金三角形の置き換えルール
ペンローズタイリング
ペンローズタイリング
カイト&ダート
ペンローズタイリング
ひし形
ペンローズタイリングの実装
1. 黄金三角形の分割と描画に関する関数を定義
2. 分割と描画の再帰呼び出し
2. 装飾的パターン
平面上の周期的な模様: 万華鏡
p3m1
p3m1パターン模様の生成
1. 正三角形基本領域上の模様をつくる
2. 点群𝐷3に従って模様をコピーし,正六角形上の模
様をつくる
3. 模様付き正六角形を六角格子に従ってコピーする
p3m1パターン模様
p3m1パターン模様
ペンローズタイリング上の模様
ペンローズタイリングの頂点
Geometry guy at English Wikipedia [CC BY-SA 3.0]

More Related Content

What's hot

What's hot (20)

プロジェクトマネジメントの原理原則を、おでん作りストーリーで学ぶ
プロジェクトマネジメントの原理原則を、おでん作りストーリーで学ぶプロジェクトマネジメントの原理原則を、おでん作りストーリーで学ぶ
プロジェクトマネジメントの原理原則を、おでん作りストーリーで学ぶ
 
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
 
最高のScrumキメた後にスケールさせようとして混乱した話
最高のScrumキメた後にスケールさせようとして混乱した話最高のScrumキメた後にスケールさせようとして混乱した話
最高のScrumキメた後にスケールさせようとして混乱した話
 
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしないPyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
 
道具としての機械学習:直感的概要とその実際
道具としての機械学習:直感的概要とその実際道具としての機械学習:直感的概要とその実際
道具としての機械学習:直感的概要とその実際
 
For MANABIYA
For MANABIYAFor MANABIYA
For MANABIYA
 
Go言語のスライスを理解しよう
Go言語のスライスを理解しようGo言語のスライスを理解しよう
Go言語のスライスを理解しよう
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
 
オントロジーとは?
オントロジーとは?オントロジーとは?
オントロジーとは?
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
 
セクシー女優で学ぶ画像分類入門
セクシー女優で学ぶ画像分類入門セクシー女優で学ぶ画像分類入門
セクシー女優で学ぶ画像分類入門
 
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
 
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
 
研究室における研究・実装ノウハウの共有
研究室における研究・実装ノウハウの共有研究室における研究・実装ノウハウの共有
研究室における研究・実装ノウハウの共有
 
研究の基本ツール
研究の基本ツール研究の基本ツール
研究の基本ツール
 
球面と双曲面の幾何学入門の入門
球面と双曲面の幾何学入門の入門球面と双曲面の幾何学入門の入門
球面と双曲面の幾何学入門の入門
 
マイクロアドのデータ基盤について アドテクを支える基盤〜10Tバイト/日のビッグデータを処理する〜
マイクロアドのデータ基盤について アドテクを支える基盤〜10Tバイト/日のビッグデータを処理する〜マイクロアドのデータ基盤について アドテクを支える基盤〜10Tバイト/日のビッグデータを処理する〜
マイクロアドのデータ基盤について アドテクを支える基盤〜10Tバイト/日のビッグデータを処理する〜
 
Pythonではじめるロケーションデータ解析
Pythonではじめるロケーションデータ解析Pythonではじめるロケーションデータ解析
Pythonではじめるロケーションデータ解析
 
マーク&スイープ勉強会
マーク&スイープ勉強会マーク&スイープ勉強会
マーク&スイープ勉強会
 
remote Docker over SSHが熱い
remote Docker over SSHが熱いremote Docker over SSHが熱い
remote Docker over SSHが熱い
 

Recently uploaded

Recently uploaded (7)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

Processingによる可視化と装飾的模様生成の技法