• NFT
  • Explore
  • Challenge
Sign in Sign up
Create Art arrow_drop_down
settings
Templates Resources
help CANCEL
Save as...
xxxxxxxxxx
97
 
1
precision highp float;
2
​
3
uniform vec2 resolution;
4
uniform float time;
5
uniform vec2 mouse;
6
uniform sampler2D backbuffer;
7
uniform sampler2D channel0;
8
​
9
// 使い方
10
// 1. 好きな画像をResourcesから選択
11
// 2. パラメータを調整
12
// 3. 完成!
13
​
14
// パラメータ
15
//--------------------------------------------------------------------------------------------------------------------------------
16
const float size = 1.5; // 描画する範囲。大きいほど広い範囲を描画する
17
const float speed = 1.5; // 回転のスピード。大きいほど速く回転する
18
​
19
const float n1 = 8.0; // ポアンカレの円板のパターンを決める整数n1
20
const float n2 = 3.0; // ポアンカレの円板のパターンを決める整数n2
21
// (n1 - 2)*(n2 - 2) > 4 を満たすようにn1, n2を設定する
22
​
23
const float textureScale = 0.25; // 画像の拡大率
24
const vec2 texturePosition = vec2(0.9, 0.2); // 画像の位置
25
//--------------------------------------------------------------------------------------------------------------------------------
26
​
27
// 数学的な説明
28
//--------------------------------------------------------------------------------------------------------------------------------
29
// このコードはシュレーフリ記号{n1, n2}で表されるポアンカレの円板(hyperbolic tessellation)を描画するものです。
30
​
31
// xy平面を考えます。
32
// x軸を直線L1とします。
33
// また、原点を通り、x軸の正方向とのなす角がangle1の直線をL2とします。
34
// そして、x軸上のx>0の範囲に中心をもち、直線L2と角度angle2で交わる円をCとします。
35
// ただし、円Cは原点を中心とする単位円に直交するものとします。
36
​
37
// また、angle1、angle2は以下を満たすものとします。
38
// angle1 = 180° / n1
39
// angle2 = 180° / n2
autorenew