GenerativeArt
をテンプレートにして作成
LECTURE
担当科目一覧
コンピュータ概論/2024
データサイエンス/2024
3DCG演習/2024
情報デザイン研究/2024
卒業研究/2024
KEYWORDS
WEB DESIGN
SOCIAL DESIGN
SQUARES
LINKS
九州産業大学
芸術学部
芸術研究科
九産大美術館
九産大図書館
年間スケジュール
動画ニュース他
交通情報
気象・環境情報
危機に備えて
K'sLife
Office365Mail
Tools
SEARCH
開始行:
*手続き記述型の造形
Generative Art
~
コンピュータ・グラフィックスには、造形的規則と生成パラメ...
ここでは、その事例をC言語風の書き方とともに紹介します。...
参考:__[[Generative AI 生成系AI の記事はこちら>Generativ...
~
~
***CONTENTS
#contents2_1
~
~
**反復(リピート)が作るパターン
***一次元の反復によるパターン生成
for( x=0; x<width; x=x+step ){
/*ここに「描画命令」を記述*/;
}
~
***二次元の反復によるパターン生成 → [[DEMO>https://koic...
for( y=0; y<height; y=y+step ){
for( x=0; x<width; x=x+step ){
/*ここに「描画命令」を記述*/;
}
}
~
~
**数理曲線
描画空間の座標(x,y,z)を、高次の多項式や三角関数を用いて...
***sinとcosによる数理曲線(反復計算が作る秩序)
~
***正円を描く
#ref(SinCos.jpg,nolink,right,around)
x ← cos θ
y ← sin θ
座標 ( x, y )に点を打つ(画素に色を付ける)
θをわずかに増やす
以上を繰り返すと画面に円図形が描かれます。
#clear
for( th=0; th<2*PI; th=th+0.01 ){
x = R * cos(th);
y = R * sin(th);
PIXEL( x+CX, CY-y );
}
&small(PI:円周率 R:半径 CX,CY:画面の中心、PIXEL( )は...
~
***リサージュ図形を描く → [[DEMO>https://koichi-inoue.gi...
for( th=0; th<2*PI; th=th+0.01 ){
x = R * cos( FX * th );
y = R * sin( FY * th );
PIXEL( x+CX, CY-y );
}
&small(FX, FY はそれぞれ横方向・縦方向の振動数);
~
***超動リサージュ図形を描く
x = R1*cos(FX1*th) + R2*cos(FX2*th) + R3*cos・・
のように複数の振動が重ね合わさった状態
~
***正葉線を描く
for( th=0; th<2*PI; th=th+0.01 ){
r = R * sin( F * th );
x = r * cos(th);
y = r * sin(th);
PIXEL( x+CX, CY-y );
}
//#image(Lissajous.jpg,right,30%)
//右はリサー ジュ、正葉線などを組み合わせて生成したパター...
//#clear
~
***剰余が作る形(線的な周期性) → [[DEMO>https://koichi-in...
#image(modulo.jpg,right,30%)
k ← n を 3 で割った余り(剰余)
k の値を色の値として図形を描く
n ← n + 1
以上を繰り返すと、画面には
012012012012・・と周期的な
色の変化が現れます。
#clear
for( y=0; y<height; y=y+step ){
for( x=0; x<width; x=x+step ){
c = ( x * y * y ) % 256;
SetPixel(hDC,x,y,RGB(c,c,c));
}
}
~
***乱数(対称性を破る契機として)
数式がつくる形は規則的で冷たいという印象を受ける
そのような場合は
A ← A × ( 1 + 乱数(1より小さな範囲の) )
などとして、計算結果 ( A ) にわずかにランダムな要素を混ぜる
ことで、変化を加えることができます。
一様乱数の生成例
x = rand() % 640; /* 0-639 */
y = rand() % 200 + 140; /* 140-339 */
※ % は剰余計算(割った余りを求める)
正規乱数の生成例
s = 0.0;
for( i=0; i<12; i++) s = s + RAND();
s = s - 6;
/* s : 平均0 標準偏差1の正規乱数 */
&small(RAND( )は、[0.0 , 1.0 ) の正規乱数生成);
~
~
**フラクタル図形
部分の形が全体の縮小形になっているというような「自己相似...
フラクタル図形は、きっかけとなる手順やデータが単純であっ...
このようなシステムを一般に「複雑系(Complex System)」と...
要素単位で見れば単純な規則でも、複数の要素が影響しあうと...
~
***セルオートマトン
#image(CellAutomaton.jpg,right,30%)
生成規則の1例
親の世代の左と右が01または10のとき子は1となる
逆に00または11のときは子は0となる
1行目(ご先祖) 00001000010000100
2行目(2代目) 00010100101001010
3行目(3代目) 00101011000110001
4行目(4代目) 01000011101111010
: :
この01並びを模様として描くと
複雑な3角形のパターンができます。
#clear
~
***再帰アルゴリズムがつくる図形 → [[DEMO>https://koichi...
#image(FractalTree.jpg,right,30%)
生成規則の1例
『枝を描く』という命令が
1)枝を描くと同時に
2) 先端左に小『枝を描く』
3) 先端右に小『枝を描く』
という処理内容であれば、
枝が小枝を、小枝が孫枝を描くことになり(一定限度でストップ...
これを幹を最初の枝としてスタートすれば、
結果的に右図のような樹形になります。
#clear
~
***マンデルブロ集合 → [[DEMO>https://koichi-inoue.github...
#image(Mandel.jpg,right,30%)
縦を虚数軸、横を実数軸とした「複素平面」を前提とした造形...
Zn+1 ← Zn^2 + C
n ← n + 1
この計算を ZSUB{0}; = 0 から一定回数繰り返した場合(例え...
複素平面上の縦横とも ±2の範囲で、すべてのC( a + bi )に...
実数の世界では、1未満の数字は2乗し続けると0に、1を超...
#clear
~
***ジュリア集合
#image(Julia.jpg,right,30%)
マンデルブロ集合と同様、縦を虚数軸、横を実数軸とした「複...
Zn+1 ← Zn^2 + C
n ← n + 1
一定のCの値について、 様々なZSUB{0};( a + bi )を初期値...
#clear
~
***カオス図形
#image(Chaos.jpg,right,30%)
初期位置
P0 ( x0 , y0 )を与えて
xn+1 ← f( xn,yn,a)
yn+1 ← g(xn,yn,a)
n ← n+1
という漸化式を繰り返すと、計算式の与え方次第で、
1.収束 2.振動 3.発散 4.非周期的振動のいずれかになります。...
~
~
**「複雑系」について
ページを独立させました。> [[ComplexSystem]]
~
~
~
終了行:
*手続き記述型の造形
Generative Art
~
コンピュータ・グラフィックスには、造形的規則と生成パラメ...
ここでは、その事例をC言語風の書き方とともに紹介します。...
参考:__[[Generative AI 生成系AI の記事はこちら>Generativ...
~
~
***CONTENTS
#contents2_1
~
~
**反復(リピート)が作るパターン
***一次元の反復によるパターン生成
for( x=0; x<width; x=x+step ){
/*ここに「描画命令」を記述*/;
}
~
***二次元の反復によるパターン生成 → [[DEMO>https://koic...
for( y=0; y<height; y=y+step ){
for( x=0; x<width; x=x+step ){
/*ここに「描画命令」を記述*/;
}
}
~
~
**数理曲線
描画空間の座標(x,y,z)を、高次の多項式や三角関数を用いて...
***sinとcosによる数理曲線(反復計算が作る秩序)
~
***正円を描く
#ref(SinCos.jpg,nolink,right,around)
x ← cos θ
y ← sin θ
座標 ( x, y )に点を打つ(画素に色を付ける)
θをわずかに増やす
以上を繰り返すと画面に円図形が描かれます。
#clear
for( th=0; th<2*PI; th=th+0.01 ){
x = R * cos(th);
y = R * sin(th);
PIXEL( x+CX, CY-y );
}
&small(PI:円周率 R:半径 CX,CY:画面の中心、PIXEL( )は...
~
***リサージュ図形を描く → [[DEMO>https://koichi-inoue.gi...
for( th=0; th<2*PI; th=th+0.01 ){
x = R * cos( FX * th );
y = R * sin( FY * th );
PIXEL( x+CX, CY-y );
}
&small(FX, FY はそれぞれ横方向・縦方向の振動数);
~
***超動リサージュ図形を描く
x = R1*cos(FX1*th) + R2*cos(FX2*th) + R3*cos・・
のように複数の振動が重ね合わさった状態
~
***正葉線を描く
for( th=0; th<2*PI; th=th+0.01 ){
r = R * sin( F * th );
x = r * cos(th);
y = r * sin(th);
PIXEL( x+CX, CY-y );
}
//#image(Lissajous.jpg,right,30%)
//右はリサー ジュ、正葉線などを組み合わせて生成したパター...
//#clear
~
***剰余が作る形(線的な周期性) → [[DEMO>https://koichi-in...
#image(modulo.jpg,right,30%)
k ← n を 3 で割った余り(剰余)
k の値を色の値として図形を描く
n ← n + 1
以上を繰り返すと、画面には
012012012012・・と周期的な
色の変化が現れます。
#clear
for( y=0; y<height; y=y+step ){
for( x=0; x<width; x=x+step ){
c = ( x * y * y ) % 256;
SetPixel(hDC,x,y,RGB(c,c,c));
}
}
~
***乱数(対称性を破る契機として)
数式がつくる形は規則的で冷たいという印象を受ける
そのような場合は
A ← A × ( 1 + 乱数(1より小さな範囲の) )
などとして、計算結果 ( A ) にわずかにランダムな要素を混ぜる
ことで、変化を加えることができます。
一様乱数の生成例
x = rand() % 640; /* 0-639 */
y = rand() % 200 + 140; /* 140-339 */
※ % は剰余計算(割った余りを求める)
正規乱数の生成例
s = 0.0;
for( i=0; i<12; i++) s = s + RAND();
s = s - 6;
/* s : 平均0 標準偏差1の正規乱数 */
&small(RAND( )は、[0.0 , 1.0 ) の正規乱数生成);
~
~
**フラクタル図形
部分の形が全体の縮小形になっているというような「自己相似...
フラクタル図形は、きっかけとなる手順やデータが単純であっ...
このようなシステムを一般に「複雑系(Complex System)」と...
要素単位で見れば単純な規則でも、複数の要素が影響しあうと...
~
***セルオートマトン
#image(CellAutomaton.jpg,right,30%)
生成規則の1例
親の世代の左と右が01または10のとき子は1となる
逆に00または11のときは子は0となる
1行目(ご先祖) 00001000010000100
2行目(2代目) 00010100101001010
3行目(3代目) 00101011000110001
4行目(4代目) 01000011101111010
: :
この01並びを模様として描くと
複雑な3角形のパターンができます。
#clear
~
***再帰アルゴリズムがつくる図形 → [[DEMO>https://koichi...
#image(FractalTree.jpg,right,30%)
生成規則の1例
『枝を描く』という命令が
1)枝を描くと同時に
2) 先端左に小『枝を描く』
3) 先端右に小『枝を描く』
という処理内容であれば、
枝が小枝を、小枝が孫枝を描くことになり(一定限度でストップ...
これを幹を最初の枝としてスタートすれば、
結果的に右図のような樹形になります。
#clear
~
***マンデルブロ集合 → [[DEMO>https://koichi-inoue.github...
#image(Mandel.jpg,right,30%)
縦を虚数軸、横を実数軸とした「複素平面」を前提とした造形...
Zn+1 ← Zn^2 + C
n ← n + 1
この計算を ZSUB{0}; = 0 から一定回数繰り返した場合(例え...
複素平面上の縦横とも ±2の範囲で、すべてのC( a + bi )に...
実数の世界では、1未満の数字は2乗し続けると0に、1を超...
#clear
~
***ジュリア集合
#image(Julia.jpg,right,30%)
マンデルブロ集合と同様、縦を虚数軸、横を実数軸とした「複...
Zn+1 ← Zn^2 + C
n ← n + 1
一定のCの値について、 様々なZSUB{0};( a + bi )を初期値...
#clear
~
***カオス図形
#image(Chaos.jpg,right,30%)
初期位置
P0 ( x0 , y0 )を与えて
xn+1 ← f( xn,yn,a)
yn+1 ← g(xn,yn,a)
n ← n+1
という漸化式を繰り返すと、計算式の与え方次第で、
1.収束 2.振動 3.発散 4.非周期的振動のいずれかになります。...
~
~
**「複雑系」について
ページを独立させました。> [[ComplexSystem]]
~
~
~
ページ名: