<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://w3.kuhalabo.net/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
		<id>http://w3.kuhalabo.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kuha</id>
		<title>kuhalaboWiki - 利用者の投稿記録 [ja]</title>
		<link rel="self" type="application/atom+xml" href="http://w3.kuhalabo.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kuha"/>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Kuha"/>
		<updated>2026-05-13T18:35:32Z</updated>
		<subtitle>利用者の投稿記録</subtitle>
		<generator>MediaWiki 1.19.2</generator>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E7%94%9F%E5%91%BD%E6%83%85%E5%A0%B1%E3%82%A2%E3%83%BC%E3%83%88%E8%AB%96</id>
		<title>生命情報アート論</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E7%94%9F%E5%91%BD%E6%83%85%E5%A0%B1%E3%82%A2%E3%83%BC%E3%83%88%E8%AB%96"/>
				<updated>2026-05-13T03:12:09Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 複雑系 ==&lt;br /&gt;
=== セルオートマトン ===&lt;br /&gt;
&lt;br /&gt;
*配布資料[http://www.kuhalabo.net/~kuha/tutorial0/bioart/cellautomaton2007.pdf PDF]&lt;br /&gt;
*[http://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%83%AB%E3%83%94%E3%83%B3%E3%82%B9%E3%82%AD%E3%83%BC%E3%81%AE%E3%82%AE%E3%83%A3%E3%82%B9%E3%82%B1%E3%83%83%E3%83%88 シェルピンスキーのガスケット]&lt;br /&gt;
** [http://falconnet.peddie.org/students/2007/nburoojy/projects/cellular/ 256種類の１次元セルオートマトンの画像] / &lt;br /&gt;
*[http://ja.wikipedia.org/wiki/%E3%82%BB%E3%83%AB%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3 セルオートマトン]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Elementary_cellular_automaton Elementary cellular automaton]&lt;br /&gt;
&lt;br /&gt;
=== ライフゲーム ===&lt;br /&gt;
[http://www.kuhalabo.net/~kuha/tutorial0/bioart/Lifegame.exe ライフゲームの例] / &lt;br /&gt;
[http://homepage3.nifty.com/izushi/LifeGame/ ライフゲーム入門] / &lt;br /&gt;
[http://www.kuhalabo.net/~kuha/tutorial0/bioart/cagallary/ セルオートマトン・ギャラリー] /&lt;br /&gt;
&lt;br /&gt;
;セルオートマトン音楽&lt;br /&gt;
[http://tones.wolfram.com/generate/ WolframTones]/ &lt;br /&gt;
[http://tamw.atari-users.net/camus.htm CAMUS]/ &lt;br /&gt;
[http://www.glitchds.com/ Glitch DS]/ &lt;br /&gt;
[http://www.kuhalabo.net/lifegorch/ Life Game Orchestra] / &lt;br /&gt;
&lt;br /&gt;
;ギャラリー&lt;br /&gt;
[http://www.collidoscope.com/modernca/ Modern Cellular Automata]/ &lt;br /&gt;
[http://prenzl.sourceforge.net/gallery/category.php CArt gallery]/ &lt;br /&gt;
[http://www.upl.cs.wisc.edu/~oblio/gnarly.html Cellular Automata Art]/ &lt;br /&gt;
[http://akinao.at.infoseek.co.jp/ascii/index.html ASCII Art Cell Automaton]/ &lt;br /&gt;
&lt;br /&gt;
;参考&lt;br /&gt;
[http://ja.wikipedia.org/wiki/%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AF%E3%83%BC%E3%83%AB%E3%83%89 ワイヤワールド] /&lt;br /&gt;
&lt;br /&gt;
=== 人工生命 ===&lt;br /&gt;
[http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%82%B0%E3%83%88%E3%83%B3%E3%81%AE%E3%82%A2%E3%83%AA ラングトンのアリ] / &lt;br /&gt;
[http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%82%B0%E3%83%88%E3%83%B3%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%97 ラングトンのループ] /&lt;br /&gt;
[http://necsi.org/postdocs/sayama/sdsr/java/ 自己増殖ループ] / &lt;br /&gt;
[http://www.red3d.com/cwr/boids/ Reynolds Boid] /&lt;br /&gt;
&lt;br /&gt;
http://www.local-guru.net/blog/2010/8/19/openframeworks-boid-demo&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/tado/6603347&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Birds Algorhythm Craig Reynolds&lt;br /&gt;
http://processing.org/examples/flocking.html&lt;br /&gt;
&lt;br /&gt;
== [[C Sharp Programming]] ==&lt;br /&gt;
&lt;br /&gt;
== フラクタル ==&lt;br /&gt;
古代ギリシャからあるユークリッド幾何学と20世紀のフラクタル幾何学の比較&lt;br /&gt;
&lt;br /&gt;
;考察&lt;br /&gt;
:古代エジプト人は3:4:5の辺を持つ三角形で直角が得られることを知っていた．ピラミッドなどの巨大建造物．&lt;br /&gt;
:三平方の定理を発見したピタゴラスはどこがすごいか？&lt;br /&gt;
&lt;br /&gt;
[http://www.gaia.h.kyoto-u.ac.jp/~fractal/ フラクタル日除け]&lt;br /&gt;
&lt;br /&gt;
== 自己相似系 ==&lt;br /&gt;
=== 再帰的呼出しによる樹木の描画 ===&lt;br /&gt;
*'''再帰的( recursive )呼び出し'''とは，サブルーチンや関数が，自分自身を呼び出すことをいう。樹木は，枝の１つを取り出して拡大しても，元の枝と同じ形（相似形）をしている。これは，同じサブルーチンで枝を描画しているからである。&lt;br /&gt;
&lt;br /&gt;
*再帰的呼出し的なCollaborate Flash Animation：[http://www.zoomquilt.org/ zoomquilt] ([http://www.media.t-kougei.ac.jp/~kuha/tutorial0/bioart/zoomquilt.swf swf])&lt;br /&gt;
*例：実行ファイル，ソース，Taneクラス &lt;br /&gt;
&lt;br /&gt;
=== C#による実装 ===&lt;br /&gt;
==== 新しいクラスの定義 ====&lt;br /&gt;
*「プロジェクト」メニューから「クラスの追加」で新しいクラス名を入力する。クラスの定義の中にメソッドを記述する。&lt;br /&gt;
* 注意&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
をTane.csの冒頭に追加&lt;br /&gt;
&lt;br /&gt;
==== 樹木の描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Bintree.jpg]]&lt;br /&gt;
[[ファイル:Bintree2.JPG]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
線分(x1,y1)-(x2,y2)が与えられたら、(x2,y2)の先端に(x3,y3), (x4,y4)を取り、線分(x2,y2)-(x3,y3)と線分(x2,y2)-(x4,y4)を描画する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    class Tane&lt;br /&gt;
    {&lt;br /&gt;
        public void Eda(int n, double x1, double y1, double x2, double y2, double angle, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4;&lt;br /&gt;
            double s = Math.Sin(angle * Math.PI / 180.0);&lt;br /&gt;
            double c = Math.Cos(angle * Math.PI / 180.0);&lt;br /&gt;
            double dx = 0.7 * (x2 - x1);&lt;br /&gt;
            double dy = 0.7 * (y2 - y1);&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = x2 + dx * c - dy * s;&lt;br /&gt;
                y3 = y2 + dx * s + dy * c;&lt;br /&gt;
                x4 = x2 + dx * c + dy * s;&lt;br /&gt;
                y4 = y2 - dx * s + dy * c;&lt;br /&gt;
                // 枝を描画する&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                g.DrawLine(pen, (float)x2, (float)y2, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x2, (float)y2, (float)x4, (float)y4);&lt;br /&gt;
                //子の再起呼び出し&lt;br /&gt;
                Eda(n - 1, x2, y2, x3, y3, angle, g, pen);&lt;br /&gt;
                Eda(n - 1, x2, y2, x4, y4, angle, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;樹木描画ボタンクリックの中身&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 10;  //枝の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width / 2; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width / 2; //開始位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.8; //開始位置 y座標&lt;br /&gt;
            double angle = 30.0; //子供の枝の角度の差分&lt;br /&gt;
            tane.Eda(n, x0, y0, x1, y1, angle, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== コッホ図形の描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Koch.jpg]]&lt;br /&gt;
[[ファイル:Koch2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Koch(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4, x5, y5;&lt;br /&gt;
            double s = Math.Sin(Math.PI / 3.0);&lt;br /&gt;
            double c = Math.Cos(Math.PI / 3.0);&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = (2 * x1 + x2) / 3.0;&lt;br /&gt;
                y3 = (2 * y1 + y2) / 3.0;&lt;br /&gt;
                x4 = (x1 + 2 * x2) / 3.0;&lt;br /&gt;
                y4 = (y1 + 2 * y2) / 3.0;&lt;br /&gt;
                x5 = x3 + (x4 - x3) * c + (y4 - y3) * s;&lt;br /&gt;
                y5 = y3 - (x4 - x3) * s + (y4 - y3) * c;&lt;br /&gt;
                // ジェネレータを描画する&lt;br /&gt;
                pen.Color = Color.Black;&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x4, (float)y4);&lt;br /&gt;
                pen.Color = Color.Green;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x5, (float)y5);&lt;br /&gt;
                g.DrawLine(pen, (float)x5, (float)y5, (float)x4, (float)y4);&lt;br /&gt;
                g.DrawLine(pen, (float)x4, (float)y4, (float)x2, (float)y2);&lt;br /&gt;
                // 子の再起呼び出し&lt;br /&gt;
                Koch(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Koch(n - 1, x3, y3, x5, y5, g, pen);&lt;br /&gt;
                Koch(n - 1, x5, y5, x4, y4, g, pen);&lt;br /&gt;
                Koch(n - 1, x4, y4, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;コッホ図形描画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            // マウス位置へ直線を描画する&lt;br /&gt;
            int n = 4;  //子の世代数&lt;br /&gt;
            double x0 = 0; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.6 ; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.6; //終了位置 y座標&lt;br /&gt;
            tane.Koch(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ドラゴン図形の描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Dragon.jpg]]&lt;br /&gt;
[[ファイル:Dragon2.jpg]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Dragon(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4, x5, y5;&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = 0.5 * ( x1 + x2);&lt;br /&gt;
                y3 = 0.5 * ( y1 + y2);&lt;br /&gt;
                x4 = 0.5 * (x1 + x3 - y1 + y3);&lt;br /&gt;
                y4 = 0.5 * (x1 - x3 + y1 + y3);&lt;br /&gt;
                x5 = 0.5 * (x2 + x3 - y2 + y3);&lt;br /&gt;
                y5 = 0.5 * (x2 - x3 + y2 + y3);&lt;br /&gt;
&lt;br /&gt;
                // 枝を描画する&lt;br /&gt;
                pen.Color = Color.Black;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x2, (float)y2);&lt;br /&gt;
                pen.Color = Color.Green;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x4, (float)y4);&lt;br /&gt;
                g.DrawLine(pen, (float)x4, (float)y4, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x5, (float)y5);&lt;br /&gt;
                g.DrawLine(pen, (float)x5, (float)y5, (float)x2, (float)y2);&lt;br /&gt;
                Dragon(n - 1, x1, y1, x4, y4, g, pen);&lt;br /&gt;
                Dragon(n - 1, x4, y4, x3, y3, g, pen);&lt;br /&gt;
                Dragon(n - 1, x3, y3, x5, y5, g, pen);&lt;br /&gt;
                Dragon(n - 1, x5, y5, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;ドラゴン図形描画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;  //子の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width * 0.1; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.5; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width * 0.9; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.5; //終了位置 y座標&lt;br /&gt;
            tane.Dragon(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== シダ葉の描画 ====&lt;br /&gt;
;ドラゴン図形の変化形&lt;br /&gt;
* ドラゴン図形で使用した(x1,y1), (x2,y2), (x3,y3), (x4,y4), (x5,y5)を使う&lt;br /&gt;
* 直線(x1,y1)-(x2,y2), 直線(x1,y1)-(x4,y4),  直線(x3,y3)-(x5,y5)を基本図形とする。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Sida2.JPG]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Fern(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4, x5, y5;&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = ( x1 + x2 ) / 2.0;&lt;br /&gt;
                y3 = ( y1 + y2 ) / 2.0;&lt;br /&gt;
                x4 = ( x1 + x3 - y1 + y3) / 2.0;&lt;br /&gt;
                y4 = ( x1 - x3 + y1 + y3) / 2.0;&lt;br /&gt;
                x5 = ( x2 + x3 - y2 + y3) / 2.0;&lt;br /&gt;
                y5 = ( x2 - x3 + y2 + y3) / 2.0;&lt;br /&gt;
                // 枝を描画する&lt;br /&gt;
                pen.Color = Color.Green;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x5, (float)y5);&lt;br /&gt;
                Fern(n - 1, x1, y1, x4, y4, g, pen);&lt;br /&gt;
                Fern(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Fern(n - 1, x3, y3, x2, y2, g, pen);&lt;br /&gt;
                Fern(n - 1, x3, y3, x5, y5, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;シダ葉描画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;  //子の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width * 0.1; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.5; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width * 0.9; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.5; //終了位置 y座標&lt;br /&gt;
            tane.Fern(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Cカーブの描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Ccurve.jpg]]&lt;br /&gt;
[[ファイル:Ccurve2.jpg]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Ccurve(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3;&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = 0.5 * (x1 + x2 - y1 + y2);&lt;br /&gt;
                y3 = 0.5 * (x1 - x2 + y1 + y2);&lt;br /&gt;
                // 枝を描画する&lt;br /&gt;
                pen.Color = Color.Black;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                pen.Color = Color.Green;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x2, (float)y2);&lt;br /&gt;
                Ccurve(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Ccurve(n - 1, x3, y3, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Cカーブ画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 12;  //子の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width * 0.25; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.75; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width * 0.75; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.75; //終了位置 y座標&lt;br /&gt;
            tane.Ccurve(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 内分点と回転によるカスタムジェネレータの描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:gene01.JPG]]&lt;br /&gt;
[[ファイル:gene012.JPG]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Gene01(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4;&lt;br /&gt;
            double p = 2.0;&lt;br /&gt;
            double q = 3.0;&lt;br /&gt;
            double th = -30.0;&lt;br /&gt;
            double s = Math.Sin(th * Math.PI / 180.0);&lt;br /&gt;
            double c = Math.Cos(th * Math.PI / 180.0);&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = (q * x1 + p * x2) / (p + q);&lt;br /&gt;
                y3 = (q * y1 + p * y2) / (p + q);&lt;br /&gt;
                x4 = x1 + (x3 - x1) * c - (y3 - y1) * s;&lt;br /&gt;
                y4 = y1 + (x3 - x1) * s + (y3 - y1) * c;&lt;br /&gt;
                pen.Color = Color.Yellow;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x4, (float)y4);&lt;br /&gt;
                Gene01(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Gene01(n - 1, x1, y1, x4, y4, g, pen);&lt;br /&gt;
                Gene01(n - 1, x3, y3, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;カスタムジェネレータ描画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;  //子の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width * 0.1; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.5; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width * 0.9; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.5; //終了位置 y座標&lt;br /&gt;
            tane.Gene01(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;マウスドラッグで始点と終点を決めて描く&lt;br /&gt;
*プロパティウィンドウにイベント(稲妻のアイコン)のリストを表示させ、MouseDownイベントをダブルクリックすると、MouseDownのメソッドが自動生成されます。&lt;br /&gt;
*label1,label2に始点の座標を、label3, label4に終点の座標を入れる&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            label1.Text = e.X.ToString();&lt;br /&gt;
            label2.Text = e.Y.ToString();&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;&lt;br /&gt;
            double x0 = double.Parse(label1.Text);&lt;br /&gt;
            double y0 = double.Parse(label2.Text);&lt;br /&gt;
            double x1 = double.Parse(label3.Text);&lt;br /&gt;
            double y1 = double.Parse(label4.Text);&lt;br /&gt;
&lt;br /&gt;
            tane.Gene01(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            label3.Text = e.X.ToString();&lt;br /&gt;
            label4.Text = e.Y.ToString();&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
p,q,thをクラスのメンバー変数にして、外部からランダムに与える。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    class Tane&lt;br /&gt;
    {&lt;br /&gt;
        public double p { get; set; }&lt;br /&gt;
        public double q { get; set; }&lt;br /&gt;
        public double th { get; set; }&lt;br /&gt;
&lt;br /&gt;
        public void Gene01(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4;&lt;br /&gt;
            double s = Math.Sin(th * Math.PI / 180.0);&lt;br /&gt;
            double c = Math.Cos(th * Math.PI / 180.0);&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = (q * x1 + p * x2) / (p + q);&lt;br /&gt;
                y3 = (q * y1 + p * y2) / (p + q);&lt;br /&gt;
                x4 = x1 + (x3 - x1) * c - (y3 - y1) * s;&lt;br /&gt;
                y4 = y1 + (x3 - x1) * s + (y3 - y1) * c;&lt;br /&gt;
                pen.Color = Color.Yellow;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x4, (float)y4);&lt;br /&gt;
                Gene01(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Gene01(n - 1, x1, y1, x4, y4, g, pen);&lt;br /&gt;
                Gene01(n - 1, x3, y3, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
            Random rnd = new Random();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;&lt;br /&gt;
            double x0 = double.Parse(label1.Text);&lt;br /&gt;
            double y0 = double.Parse(label2.Text);&lt;br /&gt;
            double x1 = double.Parse(label3.Text);&lt;br /&gt;
            double y1 = double.Parse(label4.Text);&lt;br /&gt;
&lt;br /&gt;
            tane.p = rnd.Next(2, 6);&lt;br /&gt;
            tane.q = rnd.Next(3, 7);&lt;br /&gt;
            tane.th = rnd.Next(10, 90);&lt;br /&gt;
&lt;br /&gt;
            tane.Gene01(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== タイマーを使用した樹木のアニメーション ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void button3_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            timer1.Enabled = true;&lt;br /&gt;
            timer1.Start();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button4_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            timer1.Stop();&lt;br /&gt;
            timer1.Enabled = false;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        public int cnt; //タイマー用カウンタ&lt;br /&gt;
        private void timer1_Tick(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 1);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            g.Clear(Color.Black);&lt;br /&gt;
&lt;br /&gt;
            cnt++;  //タイマー用カウンタのカウントアップ&lt;br /&gt;
            int n = 10;  //枝の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width / 2; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width / 2; //開始位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.9 - cnt * 2; //開始位置 y座標&lt;br /&gt;
            double angle = 30.0; //子供の枝の角度の変化の差分&lt;br /&gt;
            double a_rate = angle + cnt * 2;&lt;br /&gt;
            tane.Eda(n, x0, y0, x1, y1, a_rate, g, pen);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 複素平面フラクタル ==&lt;br /&gt;
*[http://blossom.media.t-kougei.ac.jp/~kuha/tutorial0/bioart/9_complex.pdf 配布資料PDF]&lt;br /&gt;
*[http://blossom.media.t-kougei.ac.jp/~kuha/tutorial0/bioart/mandelv3.exe 複複素平面フラクタル図形描画ソフトウェア for Windows]&lt;br /&gt;
**注）comdlg32.ocxがない場合は，[http://www.microsoft.com/downloads/ja-jp/details.aspx?displaylang=ja&amp;amp;FamilyID=7B9BA261-7A9C-43E7-9117-F673077FFB3C ここ]からRuntimeファイル群をダウンロードしてください。&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=0fKBhvDjuy0 Powers of Ten]&lt;br /&gt;
&lt;br /&gt;
=== C#の座標変換 ===&lt;br /&gt;
;座標原点&lt;br /&gt;
原点を移動するには、TranslateTransformメソッドを使う。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          g.TranslateTransform(x1,y1); //座標原点を(x1,y1)に移動&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;座標の回転&lt;br /&gt;
座標軸をth度(degree)だけ回転するには、RotateTransformメソッドを使う。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
　          g.RotateTransform(th);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;座標軸のスケール、方向&lt;br /&gt;
座標スケールを変換するには、ScaleTransformメソッドを使う。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            g.ScaleTransform(scx,scy);  //X軸をscx倍、Y軸をscy倍する&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
X軸は右、Y軸は下が正方向なので、座標軸方向を反転するには、次のとおり。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
　 　　　　　g.ScaleTransform(1,-1);   //Y軸方向の反転&lt;br /&gt;
　 　　　　　g.ScaleTransform(-1,1);  //X軸方向の反転&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 複素平面フラクタルの描画 ===&lt;br /&gt;
;自己平方の描画プログラム&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2); //原点を中央に移動&lt;br /&gt;
            g.ScaleTransform(1, -1); //Y軸の向きを反転&lt;br /&gt;
            Pen pen = new Pen(Color.White);&lt;br /&gt;
&lt;br /&gt;
            int Xmax = pictureBox1.Width / 2;&lt;br /&gt;
            int Xmin = -pictureBox1.Width / 2;&lt;br /&gt;
            int Ymax = pictureBox1.Height / 2;&lt;br /&gt;
            int Ymin = -pictureBox1.Height / 2;&lt;br /&gt;
            double Rmax = 0.5;&lt;br /&gt;
            double Rmin = -0.5;&lt;br /&gt;
            double Imax = 0.5;&lt;br /&gt;
            double Imin = -0.5;&lt;br /&gt;
            double Zr, newZr;&lt;br /&gt;
            double Zi, newZi;&lt;br /&gt;
            double Ar = -0.2;&lt;br /&gt;
            double Ai = 0.675;&lt;br /&gt;
            int Nmax = 100;&lt;br /&gt;
            int Rstep = 1; // 何ピクセルごとに計算するか&lt;br /&gt;
            int Istep = 1;&lt;br /&gt;
&lt;br /&gt;
            for (int x = Xmin; x &amp;lt; Xmax; x = x + Rstep)&lt;br /&gt;
            {&lt;br /&gt;
                for (int y = Ymin; y &amp;lt; Ymax; y = y + Istep)&lt;br /&gt;
                {&lt;br /&gt;
                    Zr = ( x - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Zの座標に変換&lt;br /&gt;
                    Zi = ( y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
                    int n = 0;&lt;br /&gt;
                    while ( Zr * Zr + Zi * Zi &amp;lt; 4 &amp;amp; n &amp;lt; Nmax )&lt;br /&gt;
                    {&lt;br /&gt;
                        newZr = Zr * Zr - Zi * Zi + Ar; // f(z) = X^2 * Aの実数部&lt;br /&gt;
                        newZi = 2 * Zr * Zi + Ai; // f(z) = X^2 * Aの虚数部&lt;br /&gt;
                        Zr = newZr;&lt;br /&gt;
                        Zi = newZi;&lt;br /&gt;
                        n++;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        pen.Color = Color.FromArgb(255, n * 255 / Nmax, 0, 0);//nの数に応じて色分ける&lt;br /&gt;
                        g.DrawRectangle(pen, x, y, 1, 1);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;マンデルブロー集合の描画プログラム&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2); //原点を中央に移動&lt;br /&gt;
            g.ScaleTransform(1, -1); //Y軸の向きを反転&lt;br /&gt;
            Pen pen = new Pen(Color.White);&lt;br /&gt;
&lt;br /&gt;
            int Xmax = pictureBox1.Width / 2;&lt;br /&gt;
            int Xmin = -pictureBox1.Width / 2;&lt;br /&gt;
            int Ymax = pictureBox1.Height / 2;&lt;br /&gt;
            int Ymin = -pictureBox1.Height / 2;&lt;br /&gt;
            double Rmax = 1.5;&lt;br /&gt;
            double Rmin = -1.5;&lt;br /&gt;
            double Imax = 1.5;&lt;br /&gt;
            double Imin = -1.5;&lt;br /&gt;
            double Zr, newZr;&lt;br /&gt;
            double Zi, newZi;&lt;br /&gt;
            double Cr;&lt;br /&gt;
            double Ci;&lt;br /&gt;
            int Nmax = 50;&lt;br /&gt;
            int Rstep = 1; // 何ピクセルごとに計算するか&lt;br /&gt;
            int Istep = 1;&lt;br /&gt;
&lt;br /&gt;
            for (int x = Xmin; x &amp;lt; Xmax; x = x + Rstep)&lt;br /&gt;
            {&lt;br /&gt;
                for (int y = Ymin; y &amp;lt; Ymax; y = y + Istep)&lt;br /&gt;
                {&lt;br /&gt;
                    Cr = ( x - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Cの座標に変換&lt;br /&gt;
                    Ci = ( y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
                    int n = 0;&lt;br /&gt;
                    Zr = 0.0;&lt;br /&gt;
                    Zi = 0.0;&lt;br /&gt;
                    while (Zr * Zr + Zi * Zi &amp;lt; 4 &amp;amp; n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        newZr = Zr * Zr - Zi * Zi + Cr; // f(z) = X^2 * Cの実数部&lt;br /&gt;
                        newZi = 2 * Zr * Zi + Ci; // f(z) = X^2 * Cの虚数部&lt;br /&gt;
                        Zr = newZr;&lt;br /&gt;
                        Zi = newZi;&lt;br /&gt;
                        n++;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        pen.Color = Color.FromArgb(255, 0, n * 255 / Nmax, 0);//nの数に応じて色分ける&lt;br /&gt;
                        g.DrawRectangle(pen, x, y, 1, 1);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Julia集合&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2); //原点を中央に移動&lt;br /&gt;
            g.ScaleTransform(1, -1); //Y軸の向きを反転&lt;br /&gt;
            Pen pen = new Pen(Color.White);&lt;br /&gt;
&lt;br /&gt;
            int Xmax = pictureBox1.Width / 2;&lt;br /&gt;
            int Xmin = -pictureBox1.Width / 2;&lt;br /&gt;
            int Ymax = pictureBox1.Height / 2;&lt;br /&gt;
            int Ymin = -pictureBox1.Height / 2;&lt;br /&gt;
            double Rmax = 1.5;&lt;br /&gt;
            double Rmin = -1.5;&lt;br /&gt;
            double Imax = 1.5;&lt;br /&gt;
            double Imin = -1.5;&lt;br /&gt;
            double Xr, Xr2, XrXi23, newXr;&lt;br /&gt;
            double Xi, Xi2, newXi;&lt;br /&gt;
            double Dr;&lt;br /&gt;
            double Di;&lt;br /&gt;
            int Nmax = 50;&lt;br /&gt;
            int Rstep = 1; // 何ピクセルごとに計算するか&lt;br /&gt;
            int Istep = 1;&lt;br /&gt;
&lt;br /&gt;
            for (int x = Xmin; x &amp;lt; Xmax; x = x + Rstep)&lt;br /&gt;
            {&lt;br /&gt;
                for (int y = Ymin; y &amp;lt; Ymax; y = y + Istep)&lt;br /&gt;
                {&lt;br /&gt;
                    Xr = ( x - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Cの座標に変換&lt;br /&gt;
                    Xi = ( y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
                    int n = 0;&lt;br /&gt;
                    Dr = 1.0;&lt;br /&gt;
                    Di = 1.0;&lt;br /&gt;
                    while (Dr + Di &amp;gt; 0.001 &amp;amp; n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        Xr2 = Xr * Xr;&lt;br /&gt;
                        Xi2 = Xi * Xi;&lt;br /&gt;
                        XrXi23 = (Xr2 + Xi2) * (Xr2 + Xi2) / 3;&lt;br /&gt;
                        newXr = Xr * 2 / 3 + (Xr2 - Xi2) / XrXi23; // f(z) = X^2 * Cの実数部&lt;br /&gt;
                        newXi = Xi * 2 / 3 - 2 * Xr * Xi / XrXi23; // f(z) = X^2 * Cの虚数部&lt;br /&gt;
                        Dr = Math.Abs(newXr - Xr);&lt;br /&gt;
                        Di = Math.Abs(newXi - Xi);&lt;br /&gt;
                        Xr = newXr;&lt;br /&gt;
                        Xi = newXi;&lt;br /&gt;
                        n++;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        int rr = n * 255 / Nmax;&lt;br /&gt;
                        int gg = 0;&lt;br /&gt;
                        int bb = 0;&lt;br /&gt;
                        pen.Color = Color.FromArgb(255, rr, gg, bb);//nの数に応じて色分ける&lt;br /&gt;
                        g.DrawRectangle(pen, x, y, 1, 1);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 配色の工夫 ===&lt;br /&gt;
&lt;br /&gt;
個々の色の差をハッキリさせる。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    int rr = (n % 13 + 1) * 255 / 14;&lt;br /&gt;
    int gg = (n % 11 + 1) * 255 / 12;&lt;br /&gt;
    int bb = (n % 7 + 1) * 255 / 8;&lt;br /&gt;
    pen.Color = Color.FromArgb(255, rr, gg, bb);&lt;br /&gt;
    g.DrawRectangle(pen, x, y, Rstep, Istep);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ピクセルの目を粗くした時に、矩形の中身を塗りつぶす。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    pen.Color = Color.FromArgb(255, rr, gg, bb);&lt;br /&gt;
    brush.Color = Color.FromArgb(255, rr, gg, bb);&lt;br /&gt;
    g.DrawRectangle(pen, x, y, Rstep, Istep);&lt;br /&gt;
    g.FillRectangle(brush, x, y, Rstep, Istep);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ar, Ai, Rstep, Istepなどをテキストボックスから入力する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Ar = double.Parse(textBox1.Text);&lt;br /&gt;
            Ai = double.Parse(textBox2.Text);&lt;br /&gt;
&lt;br /&gt;
            Rstep = int.Parse(textBox3.Text);&lt;br /&gt;
            Istep = Rstep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== いろいろカスタマイズ ===&lt;br /&gt;
&lt;br /&gt;
*複素平面の座標のスケールをラベルに表示する。&lt;br /&gt;
*マウスドラッグで、新しく描画する範囲を選択する。&lt;br /&gt;
*選択領域を正方形にするかどうかを、チェックボックスで指定する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        //　グローバルに宣言&lt;br /&gt;
        Point MD = new Point();//マウスダウンの位置&lt;br /&gt;
        Point MU = new Point(); //マウスアップの位置&lt;br /&gt;
&lt;br /&gt;
        bool view = false;//選択領域を描画するかどうかの判定&lt;br /&gt;
        bool view2 = false;&lt;br /&gt;
        Graphics g;&lt;br /&gt;
        int Xmax;&lt;br /&gt;
        int Xmin;&lt;br /&gt;
        int Ymax;&lt;br /&gt;
        int Ymin;&lt;br /&gt;
&lt;br /&gt;
        double Rmax;&lt;br /&gt;
        double Rmin;&lt;br /&gt;
        double Imax;&lt;br /&gt;
        double Imin;&lt;br /&gt;
&lt;br /&gt;
        double Rmax2;//マウスドラッグで指定した新しい範囲&lt;br /&gt;
        double Rmin2;&lt;br /&gt;
        double Imax2;&lt;br /&gt;
        double Imin2;&lt;br /&gt;
&lt;br /&gt;
        public Form1()&lt;br /&gt;
        {&lt;br /&gt;
            InitializeComponent();&lt;br /&gt;
            g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2); //原点を中央に移動&lt;br /&gt;
            g.ScaleTransform(1, -1); //Y軸の向きを反転&lt;br /&gt;
            view2 = true;&lt;br /&gt;
&lt;br /&gt;
            Xmax = pictureBox1.Width / 2;&lt;br /&gt;
            Xmin = -pictureBox1.Width / 2;&lt;br /&gt;
            Ymax = pictureBox1.Height / 2;&lt;br /&gt;
            Ymin = -pictureBox1.Height / 2;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = 0.5;&lt;br /&gt;
            Rmin2 = -0.5;&lt;br /&gt;
            Imax2 = 0.5;&lt;br /&gt;
            Imin2 = -0.5;&lt;br /&gt;
            Rmax = Rmax2;&lt;br /&gt;
            Rmin = Rmin2;&lt;br /&gt;
            Imax = Imax2;&lt;br /&gt;
            Imin = Imin2;&lt;br /&gt;
&lt;br /&gt;
            label1.Text = null;&lt;br /&gt;
            label2.Text = null;&lt;br /&gt;
            label3.Text = null;&lt;br /&gt;
            label4.Text = null;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button1_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Pen pen = new Pen(Color.White);&lt;br /&gt;
            SolidBrush brush = new SolidBrush(Color.FromArgb(90, 200, 200, 200));&lt;br /&gt;
&lt;br /&gt;
            g.Clear(Color.Black); //描画領域をクリア（黒で塗りつぶす）&lt;br /&gt;
&lt;br /&gt;
            Rmax = Rmax2;&lt;br /&gt;
            Rmin = Rmin2;&lt;br /&gt;
            Imax = Imax2;&lt;br /&gt;
            Imin = Imin2;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
&lt;br /&gt;
            label5.Refresh();&lt;br /&gt;
            label6.Refresh();&lt;br /&gt;
            label7.Refresh();&lt;br /&gt;
            label8.Refresh();&lt;br /&gt;
            view2 = true;&lt;br /&gt;
&lt;br /&gt;
            double Zr, newZr;&lt;br /&gt;
            double Zi, newZi;&lt;br /&gt;
            double Ar = -0.2;&lt;br /&gt;
            double Ai = 0.675;&lt;br /&gt;
//            double Ar = -0.3;&lt;br /&gt;
//            double Ai = 0.63;&lt;br /&gt;
            Ar = double.Parse(textBox1.Text);//テキストボックスから値を取得&lt;br /&gt;
            Ai = double.Parse(textBox2.Text);&lt;br /&gt;
&lt;br /&gt;
            int Nmax = 500;&lt;br /&gt;
            int Rstep = 3; // 何ピクセルごとに計算するか&lt;br /&gt;
            int Istep = 3;&lt;br /&gt;
&lt;br /&gt;
            Rstep = int.Parse(textBox3.Text);&lt;br /&gt;
            Istep = Rstep;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            for (int x = Xmin; x &amp;lt; Xmax; x = x + Rstep)&lt;br /&gt;
            {&lt;br /&gt;
                for (int y = Ymin; y &amp;lt; Ymax; y = y + Istep)&lt;br /&gt;
                {&lt;br /&gt;
                    Zr = ( x - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Zの座標に変換&lt;br /&gt;
                    Zi = ( y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
                    int n = 0;&lt;br /&gt;
                    while ( Zr * Zr + Zi * Zi &amp;lt; 4 &amp;amp; n &amp;lt; Nmax )&lt;br /&gt;
                    {&lt;br /&gt;
                        newZr = Zr * Zr - Zi * Zi + Ar; // f(z) = X^2 * Aの実数部&lt;br /&gt;
                        newZi = 2 * Zr * Zi + Ai; // f(z) = X^2 * Aの虚数部&lt;br /&gt;
                        Zr = newZr;&lt;br /&gt;
                        Zi = newZi;&lt;br /&gt;
                        n++;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        int dr = 17;&lt;br /&gt;
                        int rr = (n % dr + 1) * 255 / (dr + 1);&lt;br /&gt;
                        int gg = (n % 11 + 1) * 255 / 12;&lt;br /&gt;
                        int bb = (n % 7 + 1) * 255 / 8;&lt;br /&gt;
                        pen.Color = Color.FromArgb(255, rr, gg, 255 - bb);//nの数に応じて色分ける&lt;br /&gt;
                        brush.Color = Color.FromArgb(255, rr, gg, 255 - bb);//nの数に応じて色分ける&lt;br /&gt;
                        g.DrawRectangle(pen, x, y, Rstep, Istep);&lt;br /&gt;
                        g.FillRectangle(brush, x, y, Rstep, Istep);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button2_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.Clear(Color.Black); //描画領域をクリア（黒で塗りつぶす）&lt;br /&gt;
&lt;br /&gt;
            label1.Text = null;&lt;br /&gt;
            label2.Text = null;&lt;br /&gt;
            label3.Text = null;&lt;br /&gt;
            label4.Text = null;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
&lt;br /&gt;
            view2 = true;&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //　以下、マウスイベントによって選択範囲を取得する処理&lt;br /&gt;
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            if (view2 == false) return;&lt;br /&gt;
            // 描画フラグON&lt;br /&gt;
            view = true;&lt;br /&gt;
&lt;br /&gt;
            // Mouseを押した座標を記録&lt;br /&gt;
            MD.X = e.X - Xmax;&lt;br /&gt;
            MD.Y = Ymax - e.Y;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            if (view2 == false) return;&lt;br /&gt;
&lt;br /&gt;
            Point start = new Point();&lt;br /&gt;
            Point end = new Point();&lt;br /&gt;
&lt;br /&gt;
            // Mouseを離した座標を記録&lt;br /&gt;
            MU.X = e.X - Xmax;&lt;br /&gt;
            MU.Y = Ymax - e.Y;&lt;br /&gt;
&lt;br /&gt;
            // 座標から(X,Y)座標を計算&lt;br /&gt;
            GetRegion(MD, MU, ref start, ref end);&lt;br /&gt;
&lt;br /&gt;
            // 領域を描画&lt;br /&gt;
            DrawRegion(start, end);&lt;br /&gt;
&lt;br /&gt;
            // 描画フラグOFF&lt;br /&gt;
            view = false;&lt;br /&gt;
            view2 = false;&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            if (view2 == false) return;&lt;br /&gt;
&lt;br /&gt;
            Point p = new Point();&lt;br /&gt;
&lt;br /&gt;
            p.X = e.X - Xmax;&lt;br /&gt;
            p.Y = Ymax - e.Y;&lt;br /&gt;
&lt;br /&gt;
            // 描画フラグcheck&lt;br /&gt;
            if (view == false)&lt;br /&gt;
            {&lt;br /&gt;
                label1.Text = ( ( p.X - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin ).ToString();&lt;br /&gt;
                label2.Text = ( ( p.Y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin ).ToString();&lt;br /&gt;
&lt;br /&gt;
                label3.Text = null;&lt;br /&gt;
                label4.Text = null;&lt;br /&gt;
&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // カーソルが示している場所の座標を取得&lt;br /&gt;
            label3.Text = ( (p.X - Xmin) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin ).ToString();&lt;br /&gt;
            label4.Text = ( (p.Y - Ymin) * (Imax - Imin) / (Ymax - Ymin) + Imin ).ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void GetRegion(Point p1, Point p2, ref Point start, ref Point end)&lt;br /&gt;
        {&lt;br /&gt;
            start.X = Math.Min(p1.X, p2.X);&lt;br /&gt;
            start.Y = Math.Min(p1.Y, p2.Y);&lt;br /&gt;
&lt;br /&gt;
            end.X = Math.Max(p1.X, p2.X);&lt;br /&gt;
            end.Y = Math.Max(p1.Y, p2.Y);&lt;br /&gt;
&lt;br /&gt;
            if (checkBox1.Checked == true) //選択領域を正方形にする&lt;br /&gt;
            {&lt;br /&gt;
                int min_x_y = Math.Min(Math.Abs(end.X - start.X), Math.Abs(end.Y - start.Y));&lt;br /&gt;
&lt;br /&gt;
                end.X = start.X + min_x_y;&lt;br /&gt;
                end.Y = start.Y + min_x_y;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = ( end.X - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Zの座標に変換&lt;br /&gt;
            Imax2 = ( end.Y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
            Rmin2 = ( start.X - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin;&lt;br /&gt;
            Imin2 = ( start.Y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private int GetLength(int start, int end)&lt;br /&gt;
        {&lt;br /&gt;
            return Math.Abs(start - end);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void DrawRegion(Point start, Point end)&lt;br /&gt;
        {&lt;br /&gt;
            Pen blackPen = new Pen(Color.White);&lt;br /&gt;
            SolidBrush tbrush = new SolidBrush(Color.FromArgb(100,220,220,220));&lt;br /&gt;
&lt;br /&gt;
            // 描画する線を点線に設定&lt;br /&gt;
//            blackPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;&lt;br /&gt;
&lt;br /&gt;
            // 画面を消去&lt;br /&gt;
//            g.Clear(SystemColors.Control);&lt;br /&gt;
&lt;br /&gt;
            // 領域を描画&lt;br /&gt;
            g.DrawRectangle(blackPen, start.X, start.Y, GetLength(start.X, end.X), GetLength(start.Y, end.Y));&lt;br /&gt;
            g.FillRectangle(tbrush, start.X, start.Y, GetLength(start.X, end.X), GetLength(start.Y, end.Y));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button5_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標を初期値に戻す&lt;br /&gt;
            Rmax2 = 0.5;&lt;br /&gt;
            Rmin2 = -0.5;&lt;br /&gt;
            Imax2 = 0.5;&lt;br /&gt;
            Imin2 = -0.5;&lt;br /&gt;
&lt;br /&gt;
            label1.Text = null;&lt;br /&gt;
            label2.Text = null;&lt;br /&gt;
            label3.Text = null;&lt;br /&gt;
            label4.Text = null;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*座標のスケールの拡大、縮小ボタンを付ける&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void button6_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを５倍にする&lt;br /&gt;
            double ratio = 5.0;&lt;br /&gt;
            double R_ave = ( Rmax2 + Rmin2 ) / 2;&lt;br /&gt;
            double R_dif2 = ( Rmax2 - Rmin2 ) / 2;&lt;br /&gt;
            double I_ave = ( Imax2 + Imin2 ) / 2;&lt;br /&gt;
            double I_dif2 = ( Imax2 - Imin2 ) / 2;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = R_ave + R_dif2 * ratio;&lt;br /&gt;
            Rmin2 = R_ave - R_dif2 * ratio;&lt;br /&gt;
            Imax2 = I_ave + I_dif2 * ratio;&lt;br /&gt;
            Imin2 = I_ave - I_dif2 * ratio;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button7_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを５分の１倍にする&lt;br /&gt;
            double ratio = 5.0;&lt;br /&gt;
            double R_ave = (Rmax2 + Rmin2) / 2;&lt;br /&gt;
            double R_dif2 = (Rmax2 - Rmin2) / 2;&lt;br /&gt;
            double I_ave = (Imax2 + Imin2) / 2;&lt;br /&gt;
            double I_dif2 = (Imax2 - Imin2) / 2;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = R_ave + R_dif2 / ratio;&lt;br /&gt;
            Rmin2 = R_ave - R_dif2 / ratio;&lt;br /&gt;
            Imax2 = I_ave + I_dif2 / ratio;&lt;br /&gt;
            Imin2 = I_ave - I_dif2 / ratio;&lt;br /&gt;
            &lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*座標の上下左右へシフトさせるボタンを付ける&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void button8_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを左に0.5スケールシフトする&lt;br /&gt;
            double R_ave = (Rmax2 + Rmin2) * 0.5;&lt;br /&gt;
            double R_dif2 = (Rmax2 - Rmin2) * 0.5;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = Rmax2 - R_dif2;&lt;br /&gt;
            Rmin2 = Rmin2 - R_dif2;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button9_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを右に0.5スケールシフトする&lt;br /&gt;
            double R_ave = (Rmax2 + Rmin2) * 0.5;&lt;br /&gt;
            double R_dif2 = (Rmax2 - Rmin2) * 0.5;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = Rmax2 + R_dif2;&lt;br /&gt;
            Rmin2 = Rmin2 + R_dif2;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button10_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを下に0.5スケールシフトする&lt;br /&gt;
            double I_ave = (Imax2 + Imin2) * 0.5 ;&lt;br /&gt;
            double I_dif2 = (Imax2 - Imin2) * 0.5;&lt;br /&gt;
&lt;br /&gt;
            Imax2 = Imax2 - I_dif2;&lt;br /&gt;
            Imin2 = Imin2 - I_dif2;&lt;br /&gt;
&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button11_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを上に0.5スケールシフトする&lt;br /&gt;
            double I_ave = (Imax2 + Imin2) * 0.5;&lt;br /&gt;
            double I_dif2 = (Imax2 - Imin2) * 0.5;&lt;br /&gt;
&lt;br /&gt;
            Imax2 = Imax2 + I_dif2;&lt;br /&gt;
            Imin2 = Imin2 + I_dif2;&lt;br /&gt;
&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 人間の感覚 ==&lt;br /&gt;
=== アロマアート ===&lt;br /&gt;
嗅覚を利用したアート&lt;br /&gt;
&lt;br /&gt;
[http://w3.media.t-kougei.ac.jp/kuha/asp/asp00kuha/bbs.asp かんたん掲示板]に「香りの特徴」を書いてみよう。&lt;br /&gt;
&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/doc/pclit_manu200510.pdf 香りの印刷]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/doc/aromap20040312.pdf アロマプリンタ]&lt;br /&gt;
*[http://ja.wikipedia.org/wiki/RAMPO 映画RAMPO]&lt;br /&gt;
*ブンマー・モンティエン,呼吸の家&lt;br /&gt;
**彫刻の中に入ってハーブの香りを体感するもの　(東京都現代美術館) http://www.tokyoartbeat.com/tablog/images/ShowMeThai3.jpg&lt;br /&gt;
*アムラックスシアター&lt;br /&gt;
**シーンに合わせた座席の振動・香りつきのシアター（トヨタ・アムラックス）&lt;br /&gt;
&lt;br /&gt;
=== 共感覚 ===&lt;br /&gt;
*[http://www.kuhalabo.net/~projectk/color_sound/trial-product/new/ 色彩と調性の関係性についての実験サイト]（久原ゼミの実験企画）&lt;br /&gt;
*[http://ist.ksc.kwansei.ac.jp/~nagata/synesthesia/ 色聴は共感覚]（関西学院理工学部情報科学科の長田典子先生の研究室）&lt;br /&gt;
&lt;br /&gt;
=== ヒーリングアート ===&lt;br /&gt;
;リラックスとリフレッシュ&lt;br /&gt;
:リラックス時には副交感神経が優勢に，興奮状態にある場合は、交感神経が優勢になる。&lt;br /&gt;
:リラックス時にはアルファ波が出る？&lt;br /&gt;
&lt;br /&gt;
;1/f揺らぎ&lt;br /&gt;
*ホワイトノイズ、サイン波、ピンクノイズ(1/f揺らぎ)&lt;br /&gt;
*自然界の音を使用した楽曲 [http://www.media.t-kougei.ac.jp/~projectk/healmusic/ URL]&lt;br /&gt;
* スペクトル&lt;br /&gt;
** EQ(イコライザ)によって，音のスペクトルを加工する。&lt;br /&gt;
** スペクトルとは[[周波数構成]]のこと。ピッチ感のある音は，ピークとなる基本周波数を中心として複数の倍音成分から構成される。&lt;br /&gt;
*** [http://www.cycleof5th.com/products/soundengine/ SoundEngine]や[http://audacity.sourceforge.net/?lang=ja Audacity]でsin波などを生成し，周波数構成を観察。sin波は基本周波数１つのみ。ノコギリ波はsin波の倍数の無限級数。ホワイトノイズはランダムな周波数構成。&lt;br /&gt;
*** 人のボーカル，楽器の音，車のエンジン音のスペクトルを比較してみる。&lt;br /&gt;
;子守唄&lt;br /&gt;
*子守唄の特徴、西洋の子守唄、日本の子守唄&lt;br /&gt;
*子守唄自動作曲プログラム(Max/MSP)[http://www.media.t-kougei.ac.jp/~kuha/doc/sigmus68_suyama_kuhara07.pdf PDF]&lt;br /&gt;
*生理食塩水内レコーディング[http://www.media.t-kougei.ac.jp/kuhalaaa/mdata.php?catego=3&amp;amp;wks_id=230&amp;amp;mode=detail 竹田の子守唄]&lt;br /&gt;
&lt;br /&gt;
;生物的なシステム，生物の癒し効果&lt;br /&gt;
[http://www.kazsh.com/ flash effects] / &lt;br /&gt;
[http://levitated.net/ Levitated  the Exploration of Computation] /&lt;br /&gt;
[http://sodaplay.com/ sodaplay]/ &lt;br /&gt;
[http://www.vectorpark.com/ Vector Park] / &lt;br /&gt;
[http://www.livly.com/ リヴリー・アイランド] / &lt;br /&gt;
[http://electroplankton.com/ エレクトロプランクトン] / &lt;br /&gt;
[http://www.bandai.co.jp/releases/J2004020301.html たまごっちプラス] / &lt;br /&gt;
[http://www.aist.go.jp/pr/expo/contents/paro/paro.html メンタルコミットロボアザラシ型「パロ」] / &lt;br /&gt;
[http://www.necoro.com/home.html 猫型コミュニケーションロボット「ネコロ」] / &lt;br /&gt;
[http://www.nintendo.co.jp/ds/adgj/index.html nintendogs] / &lt;br /&gt;
[http://www.nhk.or.jp/digista/onair/hall_2004.html What is TRUTH?] / &lt;br /&gt;
&lt;br /&gt;
*[http://blossom.media.t-kougei.ac.jp/~kuha/tutorial0/bioart/egg.swf Vector Parkのegg.swf]&lt;br /&gt;
*[http://www.ebiebi.net//F_SAMPLES/clambon/ CLAMBON FARM]&lt;br /&gt;
*[http://intihuatani.usc.edu/cloud/flowing/ flOw]&lt;br /&gt;
*電子ペット Comたま [http://blossom.media.t-kougei.ac.jp/comtama/ URL] / [http://blossom.media.t-kougei.ac.jp/~kuha/doc/genko_comtama.pdf PDF]&lt;br /&gt;
&lt;br /&gt;
== [[脳]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Neural Networks]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Genetic Algorithm]] ==&lt;br /&gt;
&lt;br /&gt;
== Github ==&lt;br /&gt;
共同開発するときに便利。&lt;br /&gt;
&lt;br /&gt;
学内のプロキシー環境で作業する場合、コンソールで&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --global http.proxy proxy-n.t-kougei.ac.jp:8080&lt;br /&gt;
git config --global https.proxy proxy-n.t-kougei.ac.jp:8080&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
とする。&lt;br /&gt;
&lt;br /&gt;
通常のプロキシーのない環境で作業する場合、コンソールで&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --global --unset http.proxy proxy-n.t-kougei.ac.jp:8080&lt;br /&gt;
git config --global --unset https.proxy proxy-n.t-kougei.ac.jp:8080&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
とする。&lt;br /&gt;
&lt;br /&gt;
現在の設定を確認するには、コンソールで、&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
とする。&lt;br /&gt;
&lt;br /&gt;
== リンク ==&lt;br /&gt;
&lt;br /&gt;
http://gushwell.ifdef.jp/&lt;br /&gt;
&lt;br /&gt;
素数のグラフィック&lt;br /&gt;
http://www.datapointed.net/visualizations/math/factorization/animated-diagrams/?infinity&lt;br /&gt;
&lt;br /&gt;
[[Category:授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8"/>
				<updated>2026-05-11T09:17:20Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* 大学院 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[:Category:授業|授業]] ==&lt;br /&gt;
&lt;br /&gt;
[[コンピュータリテラシーA]]&lt;br /&gt;
&lt;br /&gt;
[[作曲演習]]&lt;br /&gt;
&lt;br /&gt;
[[スケーラブルアート論]]&lt;br /&gt;
&lt;br /&gt;
知性と感性を学ぶ([[Study on Intelligence and Sensibility]]9&lt;br /&gt;
&lt;br /&gt;
カラーサイエンス＆アート([[Color Sciense and Art]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ジェネラティブアート論]] | [[生命情報アート論]]&lt;br /&gt;
&lt;br /&gt;
[[サウンド演習I]] | [[サウンド演習II]] |&lt;br /&gt;
&lt;br /&gt;
[[総合メディア概論]] | [[システムデザイン]] | &lt;br /&gt;
&lt;br /&gt;
[[サイエンスアート特論]] | [[インタラクティブメディア特論I]] | [[インタラクティブメディア特論演習I]]&lt;br /&gt;
&lt;br /&gt;
[[インタラクティブメディア概論A]] &lt;br /&gt;
&lt;br /&gt;
[[Max/MSPによるMIDIプログラミング]] | [[Max/MSPによるオーディオプログラミング]] | &lt;br /&gt;
&lt;br /&gt;
[[MaxとFlashの通信]] | &lt;br /&gt;
[[Google Maps API V3]] | &lt;br /&gt;
[[openFrameworks for Visual studio]] | &lt;br /&gt;
[[VOCALOID seminar]]&lt;br /&gt;
&lt;br /&gt;
[[Scratchプログラミング]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Sf5AoCJWLnw&amp;amp;list=PLZBjTmM9PGD94oPGCrMSwzgPAEc47NHok サウンド演習IIベストセレクション2005-2015]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:研究|研究]] ==&lt;br /&gt;
[[docker]] / [[nginx]] / [[Deep Learning]] / [[Python]] / [[PyTorch]] / [[PHP]]&lt;br /&gt;
&lt;br /&gt;
[[Color Mapping]] / [[NeoPixel]] / [[Gaudi]] / [[ABC Conjecture]]&lt;br /&gt;
&lt;br /&gt;
[https://www.hiroshige.org.uk/ Ukiyoe Utagawa Hiroshige UK]&lt;br /&gt;
&lt;br /&gt;
[http://www.kuhalabo.net/mng/ mng]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/?&amp;amp;_encoding=UTF8&amp;amp;tag=q8labo-22&amp;amp;linkCode=ur2&amp;amp;linkId=6ba01c2aa4181dbe238cfe6cb8cb5846&amp;amp;camp=247&amp;amp;creative=1211 Amazon]&lt;br /&gt;
&lt;br /&gt;
VT Piano http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/@kuhalabo&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/playlist?list=PLZBjTmM9PGD9q3aNDgK0STlnewznEpu4w&lt;br /&gt;
&lt;br /&gt;
== 東京工芸大学 ==&lt;br /&gt;
&lt;br /&gt;
[http://www.t-kougei.ac.jp/index.html 公式サイト] /&lt;br /&gt;
[https://portal.kougei.net/up/faces/login/Com00501A.jsp コウゲイ.net] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOOGEIブログ] / &lt;br /&gt;
[https://100th.t-kougei.ac.jp/activity/ 100周年の取り組み] /&lt;br /&gt;
&lt;br /&gt;
[https://www-lib.t-kougei.ac.jp/ 図書館蔵書検索] /&lt;br /&gt;
[http://www.cc.t-kougei.ac.jp/ 情報処理教育研究センター] / &lt;br /&gt;
[http://gakuen.t-kougei.ac.jp/ GAKUEN] /&lt;br /&gt;
[http://www.univcoop.jp/kougei/ 工芸大生協] / &lt;br /&gt;
[http://order.univ.coop/ 生協Webショッピング] /&lt;br /&gt;
[https://univpc.com/ uniV PC] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOUGEI PEOPLE] /&lt;br /&gt;
[https://collab.t-kougei.ac.jp/ 色の科学芸術センター col.lab]　/ &lt;br /&gt;
[https://www.t-kougei.ac.jp/activity/extension/  芸術学部フェスタ] / &lt;br /&gt;
[https://kougei.repo.nii.ac.jp/ 学術リポジトリ]&lt;br /&gt;
&lt;br /&gt;
=== インタラクティブメディア学科 ===&lt;br /&gt;
&lt;br /&gt;
[http://www.int.t-kougei.ac.jp/ IM学科オフィシャル]&lt;br /&gt;
&lt;br /&gt;
* [[IM Open Lesson|インタラクティブメディア公開レッスン]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[久原研究室]]&lt;br /&gt;
&lt;br /&gt;
== インタラクティブメディア学科 ==&lt;br /&gt;
&lt;br /&gt;
[https://blog.t-kougei.ac.jp/int/ ブログ] /&lt;br /&gt;
[http://prezi.com/wve3-xczpvno/?utm_campaign=share&amp;amp;utm_medium=copy&amp;amp;rc=ex0share 学科紹介プレゼンテーション資料(Prezi Classic)] /&lt;br /&gt;
[https://prezi.com/view/2eIvkgJImF4VKYvyIZkI/ 学科紹介ビデオ(Prezi Next)]&lt;br /&gt;
&lt;br /&gt;
== 学会 ==&lt;br /&gt;
&lt;br /&gt;
AI Music Creativity https://aimusiccreativity.org/&lt;br /&gt;
&lt;br /&gt;
== NIME ==&lt;br /&gt;
&lt;br /&gt;
Life Game Orchestra http://www.kuhalabo.net/~kuha/nime/lifegorch/&lt;br /&gt;
&lt;br /&gt;
Tweet Harp http://www.kuhalabo.net/~kuha/nime/tweetharp/&lt;br /&gt;
&lt;br /&gt;
Wii Love Music http://www.kuhalabo.net/~kuha/nime/wiimu/&lt;br /&gt;
&lt;br /&gt;
Multi-track Loop Sequencer http://www.kuhalabo.net/~kuha/nime/lpsqr/&lt;br /&gt;
&lt;br /&gt;
Circle Canon Chorus Frog Round http://www.kuhalabo.net/~kuha/nime/kanon/chorus/&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
== 宇宙物理・天文 ==&lt;br /&gt;
&lt;br /&gt;
宇宙天気予報   https://swc.nict.go.jp/&lt;br /&gt;
&lt;br /&gt;
ケプラーの惑星音階　https://www.asahi-net.or.jp/~hb9t-ktd/music/Japan/Research/Genre/Fantasy/kepler.html&lt;br /&gt;
&lt;br /&gt;
ダジック・アース　https://www.dagik.net/ | https://www.npo.dagik.org/ | http://dagik.org/dow/&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
[[サーバ設定]]&lt;br /&gt;
&lt;br /&gt;
[[:Category:薬|薬]]&lt;br /&gt;
&lt;br /&gt;
[[Kalles Fraktaler]]&lt;br /&gt;
&lt;br /&gt;
[https://www.harjavalta.fi/kulttuuri-ja-vapaa-aika/museo/ Emil Cedercreutzin museo]&lt;br /&gt;
&lt;br /&gt;
[[素数]]&lt;br /&gt;
&lt;br /&gt;
[[誤訳]]&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~kuha/tutorial0/&lt;br /&gt;
&lt;br /&gt;
== Youtube ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCILd88Su8uj8PDWp2kHC_1w/videos?flow=list Takanori Nagae] /&lt;br /&gt;
[https://www.youtube.com/user/kuhalabo/videos?view=57&amp;amp;flow=list Kuhalabo] /&lt;br /&gt;
[https://www.youtube.com/user/kikakukougei kikakukougei] /&lt;br /&gt;
[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q インタラクティブメディア学科] /&lt;br /&gt;
[https://www.youtube.com/channel/UCRHkKJFdiyLG9pQXp_Q4Qtg 工芸大生協] /&lt;br /&gt;
&lt;br /&gt;
== はじめましょう ==&lt;br /&gt;
* [//meta.wikimedia.org/wiki/Help:Contents 利用者案内]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:Configuration_settings/ja 設定の一覧]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ/ja MediaWiki よくある質問と回答]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWikiリリース情報メーリングリスト]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8"/>
				<updated>2026-05-11T09:16:45Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* インタラクティブメディア学科 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[:Category:授業|授業]] ==&lt;br /&gt;
&lt;br /&gt;
[[コンピュータリテラシーA]]&lt;br /&gt;
&lt;br /&gt;
[[作曲演習]]&lt;br /&gt;
&lt;br /&gt;
[[スケーラブルアート論]]&lt;br /&gt;
&lt;br /&gt;
知性と感性を学ぶ([[Study on Intelligence and Sensibility]]9&lt;br /&gt;
&lt;br /&gt;
カラーサイエンス＆アート([[Color Sciense and Art]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ジェネラティブアート論]] | [[生命情報アート論]]&lt;br /&gt;
&lt;br /&gt;
[[サウンド演習I]] | [[サウンド演習II]] |&lt;br /&gt;
&lt;br /&gt;
[[総合メディア概論]] | [[システムデザイン]] | &lt;br /&gt;
&lt;br /&gt;
[[サイエンスアート特論]] | [[インタラクティブメディア特論I]] | [[インタラクティブメディア特論演習I]]&lt;br /&gt;
&lt;br /&gt;
[[インタラクティブメディア概論A]] &lt;br /&gt;
&lt;br /&gt;
[[Max/MSPによるMIDIプログラミング]] | [[Max/MSPによるオーディオプログラミング]] | &lt;br /&gt;
&lt;br /&gt;
[[MaxとFlashの通信]] | &lt;br /&gt;
[[Google Maps API V3]] | &lt;br /&gt;
[[openFrameworks for Visual studio]] | &lt;br /&gt;
[[VOCALOID seminar]]&lt;br /&gt;
&lt;br /&gt;
[[Scratchプログラミング]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Sf5AoCJWLnw&amp;amp;list=PLZBjTmM9PGD94oPGCrMSwzgPAEc47NHok サウンド演習IIベストセレクション2005-2015]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:研究|研究]] ==&lt;br /&gt;
[[docker]] / [[nginx]] / [[Deep Learning]] / [[Python]] / [[PyTorch]] / [[PHP]]&lt;br /&gt;
&lt;br /&gt;
[[Color Mapping]] / [[NeoPixel]] / [[Gaudi]] / [[ABC Conjecture]]&lt;br /&gt;
&lt;br /&gt;
[https://www.hiroshige.org.uk/ Ukiyoe Utagawa Hiroshige UK]&lt;br /&gt;
&lt;br /&gt;
[http://www.kuhalabo.net/mng/ mng]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/?&amp;amp;_encoding=UTF8&amp;amp;tag=q8labo-22&amp;amp;linkCode=ur2&amp;amp;linkId=6ba01c2aa4181dbe238cfe6cb8cb5846&amp;amp;camp=247&amp;amp;creative=1211 Amazon]&lt;br /&gt;
&lt;br /&gt;
VT Piano http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/@kuhalabo&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/playlist?list=PLZBjTmM9PGD9q3aNDgK0STlnewznEpu4w&lt;br /&gt;
&lt;br /&gt;
== 東京工芸大学 ==&lt;br /&gt;
&lt;br /&gt;
[http://www.t-kougei.ac.jp/index.html 公式サイト] /&lt;br /&gt;
[https://portal.kougei.net/up/faces/login/Com00501A.jsp コウゲイ.net] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOOGEIブログ] / &lt;br /&gt;
[https://100th.t-kougei.ac.jp/activity/ 100周年の取り組み] /&lt;br /&gt;
&lt;br /&gt;
[https://www-lib.t-kougei.ac.jp/ 図書館蔵書検索] /&lt;br /&gt;
[http://www.cc.t-kougei.ac.jp/ 情報処理教育研究センター] / &lt;br /&gt;
[http://gakuen.t-kougei.ac.jp/ GAKUEN] /&lt;br /&gt;
[http://www.univcoop.jp/kougei/ 工芸大生協] / &lt;br /&gt;
[http://order.univ.coop/ 生協Webショッピング] /&lt;br /&gt;
[https://univpc.com/ uniV PC] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOUGEI PEOPLE] /&lt;br /&gt;
[https://collab.t-kougei.ac.jp/ 色の科学芸術センター col.lab]　/ &lt;br /&gt;
[https://www.t-kougei.ac.jp/activity/extension/  芸術学部フェスタ] / &lt;br /&gt;
[https://kougei.repo.nii.ac.jp/ 学術リポジトリ]&lt;br /&gt;
&lt;br /&gt;
=== インタラクティブメディア学科 ===&lt;br /&gt;
&lt;br /&gt;
[http://www.int.t-kougei.ac.jp/ IM学科オフィシャル]&lt;br /&gt;
&lt;br /&gt;
* [[IM Open Lesson|インタラクティブメディア公開レッスン]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[久原研究室]]&lt;br /&gt;
&lt;br /&gt;
== 大学院 ==&lt;br /&gt;
&lt;br /&gt;
[[芸術学研究科]]&lt;br /&gt;
&lt;br /&gt;
== インタラクティブメディア学科 ==&lt;br /&gt;
&lt;br /&gt;
[https://blog.t-kougei.ac.jp/int/ ブログ] /&lt;br /&gt;
[http://prezi.com/wve3-xczpvno/?utm_campaign=share&amp;amp;utm_medium=copy&amp;amp;rc=ex0share 学科紹介プレゼンテーション資料(Prezi Classic)] /&lt;br /&gt;
[https://prezi.com/view/2eIvkgJImF4VKYvyIZkI/ 学科紹介ビデオ(Prezi Next)]&lt;br /&gt;
&lt;br /&gt;
== 学会 ==&lt;br /&gt;
&lt;br /&gt;
AI Music Creativity https://aimusiccreativity.org/&lt;br /&gt;
&lt;br /&gt;
== NIME ==&lt;br /&gt;
&lt;br /&gt;
Life Game Orchestra http://www.kuhalabo.net/~kuha/nime/lifegorch/&lt;br /&gt;
&lt;br /&gt;
Tweet Harp http://www.kuhalabo.net/~kuha/nime/tweetharp/&lt;br /&gt;
&lt;br /&gt;
Wii Love Music http://www.kuhalabo.net/~kuha/nime/wiimu/&lt;br /&gt;
&lt;br /&gt;
Multi-track Loop Sequencer http://www.kuhalabo.net/~kuha/nime/lpsqr/&lt;br /&gt;
&lt;br /&gt;
Circle Canon Chorus Frog Round http://www.kuhalabo.net/~kuha/nime/kanon/chorus/&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
== 宇宙物理・天文 ==&lt;br /&gt;
&lt;br /&gt;
宇宙天気予報   https://swc.nict.go.jp/&lt;br /&gt;
&lt;br /&gt;
ケプラーの惑星音階　https://www.asahi-net.or.jp/~hb9t-ktd/music/Japan/Research/Genre/Fantasy/kepler.html&lt;br /&gt;
&lt;br /&gt;
ダジック・アース　https://www.dagik.net/ | https://www.npo.dagik.org/ | http://dagik.org/dow/&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
[[サーバ設定]]&lt;br /&gt;
&lt;br /&gt;
[[:Category:薬|薬]]&lt;br /&gt;
&lt;br /&gt;
[[Kalles Fraktaler]]&lt;br /&gt;
&lt;br /&gt;
[https://www.harjavalta.fi/kulttuuri-ja-vapaa-aika/museo/ Emil Cedercreutzin museo]&lt;br /&gt;
&lt;br /&gt;
[[素数]]&lt;br /&gt;
&lt;br /&gt;
[[誤訳]]&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~kuha/tutorial0/&lt;br /&gt;
&lt;br /&gt;
== Youtube ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCILd88Su8uj8PDWp2kHC_1w/videos?flow=list Takanori Nagae] /&lt;br /&gt;
[https://www.youtube.com/user/kuhalabo/videos?view=57&amp;amp;flow=list Kuhalabo] /&lt;br /&gt;
[https://www.youtube.com/user/kikakukougei kikakukougei] /&lt;br /&gt;
[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q インタラクティブメディア学科] /&lt;br /&gt;
[https://www.youtube.com/channel/UCRHkKJFdiyLG9pQXp_Q4Qtg 工芸大生協] /&lt;br /&gt;
&lt;br /&gt;
== はじめましょう ==&lt;br /&gt;
* [//meta.wikimedia.org/wiki/Help:Contents 利用者案内]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:Configuration_settings/ja 設定の一覧]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ/ja MediaWiki よくある質問と回答]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWikiリリース情報メーリングリスト]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA:%E3%82%AB%E3%83%AA%E3%82%AD%E3%83%A5%E3%83%A9%E3%83%A0</id>
		<title>カテゴリ:カリキュラム</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA:%E3%82%AB%E3%83%AA%E3%82%AD%E3%83%A5%E3%83%A9%E3%83%A0"/>
				<updated>2026-05-11T09:16:08Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%E6%BC%94%E7%BF%92II</id>
		<title>インタラクティブメディア演習II</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%E6%BC%94%E7%BF%92II"/>
				<updated>2026-05-11T09:15:28Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%E6%BC%94%E7%BF%92I</id>
		<title>インタラクティブメディア演習I</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%E6%BC%94%E7%BF%92I"/>
				<updated>2026-05-11T09:15:17Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%E6%A6%82%E8%AB%96A</id>
		<title>インタラクティブメディア概論A</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%E6%A6%82%E8%AB%96A"/>
				<updated>2026-05-11T09:15:06Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E6%95%99%E5%8B%99</id>
		<title>教務</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E6%95%99%E5%8B%99"/>
				<updated>2026-05-11T09:14:36Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/ABC_Conjecture</id>
		<title>ABC Conjecture</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/ABC_Conjecture"/>
				<updated>2026-05-11T09:13:59Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/Gaudi</id>
		<title>Gaudi</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/Gaudi"/>
				<updated>2026-05-11T09:13:38Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/Docker</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/Docker"/>
				<updated>2026-05-11T09:11:35Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8"/>
				<updated>2026-05-11T09:11:20Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* 施設 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[:Category:授業|授業]] ==&lt;br /&gt;
&lt;br /&gt;
[[コンピュータリテラシーA]]&lt;br /&gt;
&lt;br /&gt;
[[作曲演習]]&lt;br /&gt;
&lt;br /&gt;
[[スケーラブルアート論]]&lt;br /&gt;
&lt;br /&gt;
知性と感性を学ぶ([[Study on Intelligence and Sensibility]]9&lt;br /&gt;
&lt;br /&gt;
カラーサイエンス＆アート([[Color Sciense and Art]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ジェネラティブアート論]] | [[生命情報アート論]]&lt;br /&gt;
&lt;br /&gt;
[[サウンド演習I]] | [[サウンド演習II]] |&lt;br /&gt;
&lt;br /&gt;
[[総合メディア概論]] | [[システムデザイン]] | &lt;br /&gt;
&lt;br /&gt;
[[サイエンスアート特論]] | [[インタラクティブメディア特論I]] | [[インタラクティブメディア特論演習I]]&lt;br /&gt;
&lt;br /&gt;
[[インタラクティブメディア概論A]] &lt;br /&gt;
&lt;br /&gt;
[[Max/MSPによるMIDIプログラミング]] | [[Max/MSPによるオーディオプログラミング]] | &lt;br /&gt;
&lt;br /&gt;
[[MaxとFlashの通信]] | &lt;br /&gt;
[[Google Maps API V3]] | &lt;br /&gt;
[[openFrameworks for Visual studio]] | &lt;br /&gt;
[[VOCALOID seminar]]&lt;br /&gt;
&lt;br /&gt;
[[Scratchプログラミング]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Sf5AoCJWLnw&amp;amp;list=PLZBjTmM9PGD94oPGCrMSwzgPAEc47NHok サウンド演習IIベストセレクション2005-2015]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:研究|研究]] ==&lt;br /&gt;
[[docker]] / [[nginx]] / [[Deep Learning]] / [[Python]] / [[PyTorch]] / [[PHP]]&lt;br /&gt;
&lt;br /&gt;
[[Color Mapping]] / [[NeoPixel]] / [[Gaudi]] / [[ABC Conjecture]]&lt;br /&gt;
&lt;br /&gt;
[https://www.hiroshige.org.uk/ Ukiyoe Utagawa Hiroshige UK]&lt;br /&gt;
&lt;br /&gt;
[http://www.kuhalabo.net/mng/ mng]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/?&amp;amp;_encoding=UTF8&amp;amp;tag=q8labo-22&amp;amp;linkCode=ur2&amp;amp;linkId=6ba01c2aa4181dbe238cfe6cb8cb5846&amp;amp;camp=247&amp;amp;creative=1211 Amazon]&lt;br /&gt;
&lt;br /&gt;
VT Piano http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/@kuhalabo&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/playlist?list=PLZBjTmM9PGD9q3aNDgK0STlnewznEpu4w&lt;br /&gt;
&lt;br /&gt;
== 東京工芸大学 ==&lt;br /&gt;
&lt;br /&gt;
[http://www.t-kougei.ac.jp/index.html 公式サイト] /&lt;br /&gt;
[https://portal.kougei.net/up/faces/login/Com00501A.jsp コウゲイ.net] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOOGEIブログ] / &lt;br /&gt;
[https://100th.t-kougei.ac.jp/activity/ 100周年の取り組み] /&lt;br /&gt;
&lt;br /&gt;
[https://www-lib.t-kougei.ac.jp/ 図書館蔵書検索] /&lt;br /&gt;
[http://www.cc.t-kougei.ac.jp/ 情報処理教育研究センター] / &lt;br /&gt;
[http://gakuen.t-kougei.ac.jp/ GAKUEN] /&lt;br /&gt;
[http://www.univcoop.jp/kougei/ 工芸大生協] / &lt;br /&gt;
[http://order.univ.coop/ 生協Webショッピング] /&lt;br /&gt;
[https://univpc.com/ uniV PC] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOUGEI PEOPLE] /&lt;br /&gt;
[https://collab.t-kougei.ac.jp/ 色の科学芸術センター col.lab]　/ &lt;br /&gt;
[https://www.t-kougei.ac.jp/activity/extension/  芸術学部フェスタ] / &lt;br /&gt;
[https://kougei.repo.nii.ac.jp/ 学術リポジトリ]&lt;br /&gt;
&lt;br /&gt;
=== インタラクティブメディア学科 ===&lt;br /&gt;
&lt;br /&gt;
[http://www.int.t-kougei.ac.jp/ IM学科オフィシャル]&lt;br /&gt;
&lt;br /&gt;
* [[IM Open Lesson|インタラクティブメディア公開レッスン]] &lt;br /&gt;
*[https://blog.t-kougei.ac.jp/int/ IM学科ブログ]&lt;br /&gt;
*[https://prezi.com/wve3-xczpvno/presentation/?present=1 IM学科プレゼン資料(Prezi)]&lt;br /&gt;
*[https://www.youtube.com/watch?v=lDi-T-yIKFk&amp;amp;t=5s IM学科紹介動画(YouTube)]&lt;br /&gt;
*[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q IM学科YouTubeチャンネル]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[教務]]&lt;br /&gt;
&lt;br /&gt;
[[教職課程]]&lt;br /&gt;
&lt;br /&gt;
[[久原研究室]]&lt;br /&gt;
&lt;br /&gt;
[http://socialakiba.com/ 永江研究室]&lt;br /&gt;
&lt;br /&gt;
旧[[:Category:カリキュラム|カリキュラム]]&lt;br /&gt;
&lt;br /&gt;
== 大学院 ==&lt;br /&gt;
&lt;br /&gt;
[[芸術学研究科]]&lt;br /&gt;
&lt;br /&gt;
== インタラクティブメディア学科 ==&lt;br /&gt;
&lt;br /&gt;
[https://blog.t-kougei.ac.jp/int/ ブログ] /&lt;br /&gt;
[http://prezi.com/wve3-xczpvno/?utm_campaign=share&amp;amp;utm_medium=copy&amp;amp;rc=ex0share 学科紹介プレゼンテーション資料(Prezi Classic)] /&lt;br /&gt;
[https://prezi.com/view/2eIvkgJImF4VKYvyIZkI/ 学科紹介ビデオ(Prezi Next)]&lt;br /&gt;
&lt;br /&gt;
== 学会 ==&lt;br /&gt;
&lt;br /&gt;
AI Music Creativity https://aimusiccreativity.org/&lt;br /&gt;
&lt;br /&gt;
== NIME ==&lt;br /&gt;
&lt;br /&gt;
Life Game Orchestra http://www.kuhalabo.net/~kuha/nime/lifegorch/&lt;br /&gt;
&lt;br /&gt;
Tweet Harp http://www.kuhalabo.net/~kuha/nime/tweetharp/&lt;br /&gt;
&lt;br /&gt;
Wii Love Music http://www.kuhalabo.net/~kuha/nime/wiimu/&lt;br /&gt;
&lt;br /&gt;
Multi-track Loop Sequencer http://www.kuhalabo.net/~kuha/nime/lpsqr/&lt;br /&gt;
&lt;br /&gt;
Circle Canon Chorus Frog Round http://www.kuhalabo.net/~kuha/nime/kanon/chorus/&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
== 宇宙物理・天文 ==&lt;br /&gt;
&lt;br /&gt;
宇宙天気予報   https://swc.nict.go.jp/&lt;br /&gt;
&lt;br /&gt;
ケプラーの惑星音階　https://www.asahi-net.or.jp/~hb9t-ktd/music/Japan/Research/Genre/Fantasy/kepler.html&lt;br /&gt;
&lt;br /&gt;
ダジック・アース　https://www.dagik.net/ | https://www.npo.dagik.org/ | http://dagik.org/dow/&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
[[サーバ設定]]&lt;br /&gt;
&lt;br /&gt;
[[:Category:薬|薬]]&lt;br /&gt;
&lt;br /&gt;
[[Kalles Fraktaler]]&lt;br /&gt;
&lt;br /&gt;
[https://www.harjavalta.fi/kulttuuri-ja-vapaa-aika/museo/ Emil Cedercreutzin museo]&lt;br /&gt;
&lt;br /&gt;
[[素数]]&lt;br /&gt;
&lt;br /&gt;
[[誤訳]]&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~kuha/tutorial0/&lt;br /&gt;
&lt;br /&gt;
== Youtube ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCILd88Su8uj8PDWp2kHC_1w/videos?flow=list Takanori Nagae] /&lt;br /&gt;
[https://www.youtube.com/user/kuhalabo/videos?view=57&amp;amp;flow=list Kuhalabo] /&lt;br /&gt;
[https://www.youtube.com/user/kikakukougei kikakukougei] /&lt;br /&gt;
[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q インタラクティブメディア学科] /&lt;br /&gt;
[https://www.youtube.com/channel/UCRHkKJFdiyLG9pQXp_Q4Qtg 工芸大生協] /&lt;br /&gt;
&lt;br /&gt;
== はじめましょう ==&lt;br /&gt;
* [//meta.wikimedia.org/wiki/Help:Contents 利用者案内]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:Configuration_settings/ja 設定の一覧]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ/ja MediaWiki よくある質問と回答]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWikiリリース情報メーリングリスト]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E5%B0%82%E7%94%A8%E8%AC%9B%E7%BE%A9%E5%AE%A4</id>
		<title>専用講義室</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E5%B0%82%E7%94%A8%E8%AC%9B%E7%BE%A9%E5%AE%A4"/>
				<updated>2026-05-11T09:11:01Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/Communication_Space</id>
		<title>Communication Space</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/Communication_Space"/>
				<updated>2026-05-11T09:10:50Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E5%85%B1%E5%90%8C%E7%A0%94%E7%A9%B6%E5%AE%A4</id>
		<title>共同研究室</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E5%85%B1%E5%90%8C%E7%A0%94%E7%A9%B6%E5%AE%A4"/>
				<updated>2026-05-11T09:10:37Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/312%E6%95%99%E5%AE%A4</id>
		<title>312教室</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/312%E6%95%99%E5%AE%A4"/>
				<updated>2026-05-11T09:10:21Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%82%B9%E3%82%BF%E3%82%B8%E3%82%AA</id>
		<title>サウンドスタジオ</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%82%B9%E3%82%BF%E3%82%B8%E3%82%AA"/>
				<updated>2026-05-11T09:10:02Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E5%AD%A6%E7%A7%91%E3%82%AA%E3%83%95%E3%82%A3%E3%82%B9</id>
		<title>学科オフィス</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E5%AD%A6%E7%A7%91%E3%82%AA%E3%83%95%E3%82%A3%E3%82%B9"/>
				<updated>2026-05-11T09:09:14Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8"/>
				<updated>2026-05-11T09:08:58Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* 施設 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[:Category:授業|授業]] ==&lt;br /&gt;
&lt;br /&gt;
[[コンピュータリテラシーA]]&lt;br /&gt;
&lt;br /&gt;
[[作曲演習]]&lt;br /&gt;
&lt;br /&gt;
[[スケーラブルアート論]]&lt;br /&gt;
&lt;br /&gt;
知性と感性を学ぶ([[Study on Intelligence and Sensibility]]9&lt;br /&gt;
&lt;br /&gt;
カラーサイエンス＆アート([[Color Sciense and Art]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ジェネラティブアート論]] | [[生命情報アート論]]&lt;br /&gt;
&lt;br /&gt;
[[サウンド演習I]] | [[サウンド演習II]] |&lt;br /&gt;
&lt;br /&gt;
[[総合メディア概論]] | [[システムデザイン]] | &lt;br /&gt;
&lt;br /&gt;
[[サイエンスアート特論]] | [[インタラクティブメディア特論I]] | [[インタラクティブメディア特論演習I]]&lt;br /&gt;
&lt;br /&gt;
[[インタラクティブメディア概論A]] &lt;br /&gt;
&lt;br /&gt;
[[Max/MSPによるMIDIプログラミング]] | [[Max/MSPによるオーディオプログラミング]] | &lt;br /&gt;
&lt;br /&gt;
[[MaxとFlashの通信]] | &lt;br /&gt;
[[Google Maps API V3]] | &lt;br /&gt;
[[openFrameworks for Visual studio]] | &lt;br /&gt;
[[VOCALOID seminar]]&lt;br /&gt;
&lt;br /&gt;
[[Scratchプログラミング]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Sf5AoCJWLnw&amp;amp;list=PLZBjTmM9PGD94oPGCrMSwzgPAEc47NHok サウンド演習IIベストセレクション2005-2015]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:研究|研究]] ==&lt;br /&gt;
[[docker]] / [[nginx]] / [[Deep Learning]] / [[Python]] / [[PyTorch]] / [[PHP]]&lt;br /&gt;
&lt;br /&gt;
[[Color Mapping]] / [[NeoPixel]] / [[Gaudi]] / [[ABC Conjecture]]&lt;br /&gt;
&lt;br /&gt;
[https://www.hiroshige.org.uk/ Ukiyoe Utagawa Hiroshige UK]&lt;br /&gt;
&lt;br /&gt;
[http://www.kuhalabo.net/mng/ mng]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/?&amp;amp;_encoding=UTF8&amp;amp;tag=q8labo-22&amp;amp;linkCode=ur2&amp;amp;linkId=6ba01c2aa4181dbe238cfe6cb8cb5846&amp;amp;camp=247&amp;amp;creative=1211 Amazon]&lt;br /&gt;
&lt;br /&gt;
VT Piano http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/@kuhalabo&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/playlist?list=PLZBjTmM9PGD9q3aNDgK0STlnewznEpu4w&lt;br /&gt;
&lt;br /&gt;
== 東京工芸大学 ==&lt;br /&gt;
&lt;br /&gt;
[http://www.t-kougei.ac.jp/index.html 公式サイト] /&lt;br /&gt;
[https://portal.kougei.net/up/faces/login/Com00501A.jsp コウゲイ.net] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOOGEIブログ] / &lt;br /&gt;
[https://100th.t-kougei.ac.jp/activity/ 100周年の取り組み] /&lt;br /&gt;
&lt;br /&gt;
[https://www-lib.t-kougei.ac.jp/ 図書館蔵書検索] /&lt;br /&gt;
[http://www.cc.t-kougei.ac.jp/ 情報処理教育研究センター] / &lt;br /&gt;
[http://gakuen.t-kougei.ac.jp/ GAKUEN] /&lt;br /&gt;
[http://www.univcoop.jp/kougei/ 工芸大生協] / &lt;br /&gt;
[http://order.univ.coop/ 生協Webショッピング] /&lt;br /&gt;
[https://univpc.com/ uniV PC] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOUGEI PEOPLE] /&lt;br /&gt;
[https://collab.t-kougei.ac.jp/ 色の科学芸術センター col.lab]　/ &lt;br /&gt;
[https://www.t-kougei.ac.jp/activity/extension/  芸術学部フェスタ] / &lt;br /&gt;
[https://kougei.repo.nii.ac.jp/ 学術リポジトリ]&lt;br /&gt;
&lt;br /&gt;
=== インタラクティブメディア学科 ===&lt;br /&gt;
&lt;br /&gt;
[http://www.int.t-kougei.ac.jp/ IM学科オフィシャル]&lt;br /&gt;
&lt;br /&gt;
* [[IM Open Lesson|インタラクティブメディア公開レッスン]] &lt;br /&gt;
*[https://blog.t-kougei.ac.jp/int/ IM学科ブログ]&lt;br /&gt;
*[https://prezi.com/wve3-xczpvno/presentation/?present=1 IM学科プレゼン資料(Prezi)]&lt;br /&gt;
*[https://www.youtube.com/watch?v=lDi-T-yIKFk&amp;amp;t=5s IM学科紹介動画(YouTube)]&lt;br /&gt;
*[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q IM学科YouTubeチャンネル]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[教務]]&lt;br /&gt;
&lt;br /&gt;
[[教職課程]]&lt;br /&gt;
&lt;br /&gt;
[[久原研究室]]&lt;br /&gt;
&lt;br /&gt;
[http://socialakiba.com/ 永江研究室]&lt;br /&gt;
&lt;br /&gt;
旧[[:Category:カリキュラム|カリキュラム]]&lt;br /&gt;
&lt;br /&gt;
== 大学院 ==&lt;br /&gt;
&lt;br /&gt;
[[芸術学研究科]]&lt;br /&gt;
&lt;br /&gt;
==  [[:Category:施設|施設]] ==&lt;br /&gt;
&lt;br /&gt;
[[学科オフィス]] / &lt;br /&gt;
[[サウンドスタジオ]] /&lt;br /&gt;
[[312教室]] /&lt;br /&gt;
[[共同研究室]] /&lt;br /&gt;
[[Communication Space]] /&lt;br /&gt;
[[専用講義室]] /&lt;br /&gt;
デジタルスタジオ&lt;br /&gt;
&lt;br /&gt;
== インタラクティブメディア学科 ==&lt;br /&gt;
&lt;br /&gt;
[https://blog.t-kougei.ac.jp/int/ ブログ] /&lt;br /&gt;
[http://prezi.com/wve3-xczpvno/?utm_campaign=share&amp;amp;utm_medium=copy&amp;amp;rc=ex0share 学科紹介プレゼンテーション資料(Prezi Classic)] /&lt;br /&gt;
[https://prezi.com/view/2eIvkgJImF4VKYvyIZkI/ 学科紹介ビデオ(Prezi Next)]&lt;br /&gt;
&lt;br /&gt;
== 学会 ==&lt;br /&gt;
&lt;br /&gt;
AI Music Creativity https://aimusiccreativity.org/&lt;br /&gt;
&lt;br /&gt;
== NIME ==&lt;br /&gt;
&lt;br /&gt;
Life Game Orchestra http://www.kuhalabo.net/~kuha/nime/lifegorch/&lt;br /&gt;
&lt;br /&gt;
Tweet Harp http://www.kuhalabo.net/~kuha/nime/tweetharp/&lt;br /&gt;
&lt;br /&gt;
Wii Love Music http://www.kuhalabo.net/~kuha/nime/wiimu/&lt;br /&gt;
&lt;br /&gt;
Multi-track Loop Sequencer http://www.kuhalabo.net/~kuha/nime/lpsqr/&lt;br /&gt;
&lt;br /&gt;
Circle Canon Chorus Frog Round http://www.kuhalabo.net/~kuha/nime/kanon/chorus/&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
== 宇宙物理・天文 ==&lt;br /&gt;
&lt;br /&gt;
宇宙天気予報   https://swc.nict.go.jp/&lt;br /&gt;
&lt;br /&gt;
ケプラーの惑星音階　https://www.asahi-net.or.jp/~hb9t-ktd/music/Japan/Research/Genre/Fantasy/kepler.html&lt;br /&gt;
&lt;br /&gt;
ダジック・アース　https://www.dagik.net/ | https://www.npo.dagik.org/ | http://dagik.org/dow/&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
[[サーバ設定]]&lt;br /&gt;
&lt;br /&gt;
[[:Category:薬|薬]]&lt;br /&gt;
&lt;br /&gt;
[[Kalles Fraktaler]]&lt;br /&gt;
&lt;br /&gt;
[https://www.harjavalta.fi/kulttuuri-ja-vapaa-aika/museo/ Emil Cedercreutzin museo]&lt;br /&gt;
&lt;br /&gt;
[[素数]]&lt;br /&gt;
&lt;br /&gt;
[[誤訳]]&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~kuha/tutorial0/&lt;br /&gt;
&lt;br /&gt;
== Youtube ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCILd88Su8uj8PDWp2kHC_1w/videos?flow=list Takanori Nagae] /&lt;br /&gt;
[https://www.youtube.com/user/kuhalabo/videos?view=57&amp;amp;flow=list Kuhalabo] /&lt;br /&gt;
[https://www.youtube.com/user/kikakukougei kikakukougei] /&lt;br /&gt;
[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q インタラクティブメディア学科] /&lt;br /&gt;
[https://www.youtube.com/channel/UCRHkKJFdiyLG9pQXp_Q4Qtg 工芸大生協] /&lt;br /&gt;
&lt;br /&gt;
== はじめましょう ==&lt;br /&gt;
* [//meta.wikimedia.org/wiki/Help:Contents 利用者案内]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:Configuration_settings/ja 設定の一覧]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ/ja MediaWiki よくある質問と回答]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWikiリリース情報メーリングリスト]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%86%E3%83%A9%E3%82%B7%E3%83%BCA</id>
		<title>コンピュータリテラシーA</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%86%E3%83%A9%E3%82%B7%E3%83%BCA"/>
				<updated>2026-05-11T08:49:02Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
&lt;br /&gt;
*参考図書　[http://www.infonet.co.jp/ueyama/ip/index.html Webで学ぶ 情報処理概論] | [http://www.infonet.co.jp/ueyama/ip/JohoShori_II.pdf 無償PDF版]&lt;br /&gt;
&lt;br /&gt;
== 内容 ==&lt;br /&gt;
[https://note.com/kuhalabo/n/nc79fa9bf7d74?sub_rt=share_sb デジタルとアナログ]&lt;br /&gt;
&lt;br /&gt;
[[人間とコンピュータ]]&lt;br /&gt;
&lt;br /&gt;
[[アートとテクノロジー]]&lt;br /&gt;
&lt;br /&gt;
[[メディアとコンテンツ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/dec2hex.htm 10進，16進，2進の関係]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/rgb.htm RGBと16進値]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/hex2rgb.html RGB値と色の一覧表]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/shosiki.html いろいろな文字書式のソース例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/font_en.html 英語フォントの例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/font_jp.html 日本語フォントの例]&lt;br /&gt;
*[http://www.j-tanabe.com/fuku/fuku_0.html リンクの例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/table.html tableタグのソース例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/ HTML参考]&lt;br /&gt;
&lt;br /&gt;
;参考サイト&lt;br /&gt;
* タイポグラフィー http://blog.btrax.com/jp/2014/07/01/type1/&lt;br /&gt;
* 伝わるデザイン http://tsutawarudesign.web.fc2.com/index.html&lt;br /&gt;
&lt;br /&gt;
== 論理回路 ==&lt;br /&gt;
&lt;br /&gt;
https://wwws.kobe-c.ac.jp/deguchi/sc180/logic/gate.html&lt;br /&gt;
&lt;br /&gt;
== 参考リンク ==&lt;br /&gt;
質より量、量より質&lt;br /&gt;
http://gigazine.net/news/20130813-prioritize-quantity-than-quality/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:授業|授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%86%E3%83%A9%E3%82%B7%E3%83%BCA</id>
		<title>コンピュータリテラシーA</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%86%E3%83%A9%E3%82%B7%E3%83%BCA"/>
				<updated>2026-05-11T08:48:25Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* デジタルとアナログ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
&lt;br /&gt;
*参考図書　[http://www.infonet.co.jp/ueyama/ip/index.html Webで学ぶ 情報処理概論] | [http://www.infonet.co.jp/ueyama/ip/JohoShori_II.pdf 無償PDF版]&lt;br /&gt;
&lt;br /&gt;
[https://note.com/kuhalabo/n/nc79fa9bf7d74?sub_rt=share_sb デジタルとアナログ]&lt;br /&gt;
&lt;br /&gt;
== [[人間とコンピュータ]] ==&lt;br /&gt;
&lt;br /&gt;
== [[アートとテクノロジー]] ==&lt;br /&gt;
&lt;br /&gt;
== [[メディアとコンテンツ]] ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/dec2hex.htm 10進，16進，2進の関係]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/rgb.htm RGBと16進値]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/hex2rgb.html RGB値と色の一覧表]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/shosiki.html いろいろな文字書式のソース例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/font_en.html 英語フォントの例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/font_jp.html 日本語フォントの例]&lt;br /&gt;
*[http://www.j-tanabe.com/fuku/fuku_0.html リンクの例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/table.html tableタグのソース例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/ HTML参考]&lt;br /&gt;
&lt;br /&gt;
;参考サイト&lt;br /&gt;
* タイポグラフィー http://blog.btrax.com/jp/2014/07/01/type1/&lt;br /&gt;
* 伝わるデザイン http://tsutawarudesign.web.fc2.com/index.html&lt;br /&gt;
&lt;br /&gt;
== 論理回路 ==&lt;br /&gt;
&lt;br /&gt;
https://wwws.kobe-c.ac.jp/deguchi/sc180/logic/gate.html&lt;br /&gt;
&lt;br /&gt;
== 参考リンク ==&lt;br /&gt;
質より量、量より質&lt;br /&gt;
http://gigazine.net/news/20130813-prioritize-quantity-than-quality/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:授業|授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%86%E3%83%A9%E3%82%B7%E3%83%BCA</id>
		<title>コンピュータリテラシーA</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%86%E3%83%A9%E3%82%B7%E3%83%BCA"/>
				<updated>2026-05-11T08:47:43Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* デジタルとアナログ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
&lt;br /&gt;
*参考図書　[http://www.infonet.co.jp/ueyama/ip/index.html Webで学ぶ 情報処理概論] | [http://www.infonet.co.jp/ueyama/ip/JohoShori_II.pdf 無償PDF版]&lt;br /&gt;
&lt;br /&gt;
== デジタルとアナログ ==&lt;br /&gt;
https://note.com/kuhalabo/n/nc79fa9bf7d74?sub_rt=share_sb&lt;br /&gt;
&lt;br /&gt;
== [[人間とコンピュータ]] ==&lt;br /&gt;
&lt;br /&gt;
== [[アートとテクノロジー]] ==&lt;br /&gt;
&lt;br /&gt;
== [[メディアとコンテンツ]] ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/dec2hex.htm 10進，16進，2進の関係]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/rgb.htm RGBと16進値]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/hex2rgb.html RGB値と色の一覧表]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/shosiki.html いろいろな文字書式のソース例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/font_en.html 英語フォントの例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/font_jp.html 日本語フォントの例]&lt;br /&gt;
*[http://www.j-tanabe.com/fuku/fuku_0.html リンクの例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/table.html tableタグのソース例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/ HTML参考]&lt;br /&gt;
&lt;br /&gt;
;参考サイト&lt;br /&gt;
* タイポグラフィー http://blog.btrax.com/jp/2014/07/01/type1/&lt;br /&gt;
* 伝わるデザイン http://tsutawarudesign.web.fc2.com/index.html&lt;br /&gt;
&lt;br /&gt;
== 論理回路 ==&lt;br /&gt;
&lt;br /&gt;
https://wwws.kobe-c.ac.jp/deguchi/sc180/logic/gate.html&lt;br /&gt;
&lt;br /&gt;
== 参考リンク ==&lt;br /&gt;
質より量、量より質&lt;br /&gt;
http://gigazine.net/news/20130813-prioritize-quantity-than-quality/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:授業|授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%86%E3%83%A9%E3%82%B7%E3%83%BCA</id>
		<title>コンピュータリテラシーA</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%86%E3%83%A9%E3%82%B7%E3%83%BCA"/>
				<updated>2026-05-11T08:45:31Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
&lt;br /&gt;
*参考図書　[http://www.infonet.co.jp/ueyama/ip/index.html Webで学ぶ 情報処理概論] | [http://www.infonet.co.jp/ueyama/ip/JohoShori_II.pdf 無償PDF版]&lt;br /&gt;
&lt;br /&gt;
== デジタルとアナログ ==&lt;br /&gt;
&lt;br /&gt;
== [[人間とコンピュータ]] ==&lt;br /&gt;
&lt;br /&gt;
== [[アートとテクノロジー]] ==&lt;br /&gt;
&lt;br /&gt;
== [[メディアとコンテンツ]] ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/dec2hex.htm 10進，16進，2進の関係]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/rgb.htm RGBと16進値]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/hex2rgb.html RGB値と色の一覧表]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/shosiki.html いろいろな文字書式のソース例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/font_en.html 英語フォントの例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/font_jp.html 日本語フォントの例]&lt;br /&gt;
*[http://www.j-tanabe.com/fuku/fuku_0.html リンクの例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/table.html tableタグのソース例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/ HTML参考]&lt;br /&gt;
&lt;br /&gt;
;参考サイト&lt;br /&gt;
* タイポグラフィー http://blog.btrax.com/jp/2014/07/01/type1/&lt;br /&gt;
* 伝わるデザイン http://tsutawarudesign.web.fc2.com/index.html&lt;br /&gt;
&lt;br /&gt;
== 論理回路 ==&lt;br /&gt;
&lt;br /&gt;
https://wwws.kobe-c.ac.jp/deguchi/sc180/logic/gate.html&lt;br /&gt;
&lt;br /&gt;
== 参考リンク ==&lt;br /&gt;
質より量、量より質&lt;br /&gt;
http://gigazine.net/news/20130813-prioritize-quantity-than-quality/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:授業|授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%86%E3%83%A9%E3%82%B7%E3%83%BCA</id>
		<title>コンピュータリテラシーA</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%86%E3%83%A9%E3%82%B7%E3%83%BCA"/>
				<updated>2026-05-11T08:45:10Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
&lt;br /&gt;
*参考図書　[http://www.infonet.co.jp/ueyama/ip/index.html Webで学ぶ 情報処理概論] | [http://www.infonet.co.jp/ueyama/ip/JohoShori_II.pdf 無償PDF版]&lt;br /&gt;
&lt;br /&gt;
== [[人間とコンピュータ]] ==&lt;br /&gt;
&lt;br /&gt;
== [[アートとテクノロジー]] ==&lt;br /&gt;
&lt;br /&gt;
== [[メディアとコンテンツ]] ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/dec2hex.htm 10進，16進，2進の関係]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/rgb.htm RGBと16進値]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/hex2rgb.html RGB値と色の一覧表]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/shosiki.html いろいろな文字書式のソース例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/font_en.html 英語フォントの例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/font_jp.html 日本語フォントの例]&lt;br /&gt;
*[http://www.j-tanabe.com/fuku/fuku_0.html リンクの例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/table.html tableタグのソース例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/ HTML参考]&lt;br /&gt;
&lt;br /&gt;
;参考サイト&lt;br /&gt;
* タイポグラフィー http://blog.btrax.com/jp/2014/07/01/type1/&lt;br /&gt;
* 伝わるデザイン http://tsutawarudesign.web.fc2.com/index.html&lt;br /&gt;
&lt;br /&gt;
== 論理回路 ==&lt;br /&gt;
&lt;br /&gt;
https://wwws.kobe-c.ac.jp/deguchi/sc180/logic/gate.html&lt;br /&gt;
&lt;br /&gt;
== 参考リンク ==&lt;br /&gt;
質より量、量より質&lt;br /&gt;
http://gigazine.net/news/20130813-prioritize-quantity-than-quality/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:授業|授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%81%A8%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0</id>
		<title>デジタルとアナログ</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%81%A8%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0"/>
				<updated>2026-05-11T08:44:40Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%81%A8%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0</id>
		<title>デジタルとアナログ</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%81%A8%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0"/>
				<updated>2026-05-08T07:38:21Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* デジタル digital&lt;br /&gt;
** 指の、数字の．．．&lt;br /&gt;
** すべての情報を数字で表現する。&lt;br /&gt;
* アナログ analogue&lt;br /&gt;
** 類似の、連続した．．．&lt;br /&gt;
** 現実世界に存在する連続に変化する物理量を類似の連続したで尺度であらわす。&lt;br /&gt;
** A/D変換、D/A変換&lt;br /&gt;
* 音&lt;br /&gt;
** 人間の耳で聞こえる音の周波数　20Hz～20kHz&lt;br /&gt;
** 空気の振動をギザギザのデジタルで表す。&lt;br /&gt;
***クオンタイズ（量子化）とサンプリング（標本）&lt;br /&gt;
*** 音楽CD　サンプリングレート：44.1KHz, 量子化ビット数：16bit&lt;br /&gt;
* 動画&lt;br /&gt;
** 画面の解像度&lt;br /&gt;
*** 縦×横のピクセル数 NTSC 640*480&lt;br /&gt;
** フレームレイト&lt;br /&gt;
*** 1秒当たり表示される画面（フレーム）の数。単位は：fps(frame per minutes)&lt;br /&gt;
*** 60 fpsほどで十分滑らかな動画になる。&lt;br /&gt;
* 色&lt;br /&gt;
** 光の3原色&lt;br /&gt;
*** RGB : Red, Green, Blue&lt;br /&gt;
*** 3色のライトの強さで色が決まる。&lt;br /&gt;
** 色の3原色&lt;br /&gt;
*** CYM : Cyan, Yellow, Magenta&lt;br /&gt;
*** 3色の絵の具の濃さで色が決まる。&lt;br /&gt;
**[http://www.kuhalabo.net/~kuha/bhtml/rgb.htm RGBと16進値]&lt;br /&gt;
* 2進数と情報量&lt;br /&gt;
** ビット bit&lt;br /&gt;
*** 1桁の0と1で表せる情報量＝1ビット&lt;br /&gt;
**** 1(Yes)か0(No)かの2通り。中ぐらいはない。&lt;br /&gt;
*** 2桁の0と1で表せる情報量＝2ビット&lt;br /&gt;
**** 00, 01, 10, 11の4通り。4段階で表せる。&lt;br /&gt;
**** DNAは'''ATGC'''の4文字で情報を記述している。DNAの1文字は2ビットになる。 http://www.kuhalabo.net/kxoops/modules/d3blog/details.php?bid=5&lt;br /&gt;
**** ゲノムのDNAマップ [https://www.ncbi.nlm.nih.gov/genome/gdv/ NCBI Genome Data Viewer]&lt;br /&gt;
*** ASCII文字コードは7ビット http://e-words.jp/p/r-ascii.html&lt;br /&gt;
** バイト byte　（ひとくちサイズ）&lt;br /&gt;
*** 8桁の0か1かで表せる情報量＝8ビット=1バイト&lt;br /&gt;
**** 00000000, 00000001, 00000010,…,11111111&lt;br /&gt;
**** 2の8乗 = 合計256通り&lt;br /&gt;
***漢字を表記できる文字コードは2バイト 256*256=65536&lt;br /&gt;
* 16進数と10進数と2進数&lt;br /&gt;
** 2進数：2個の文字で数字を表す: 0, 1&lt;br /&gt;
** 10進数：10個の文字で数字を表す : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9&lt;br /&gt;
** 16進数：16個の文字で数字を表す : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F&lt;br /&gt;
** 対応表&lt;br /&gt;
*** http://www.kuhalabo.net/~kuha/bhtml/dec2hex.htm&lt;br /&gt;
*** http://www.infonet.co.jp/ueyama/ip/binary/binary.html&lt;br /&gt;
*700MBの音楽CDには、何分の音楽を記録することができるでしょうか？&lt;br /&gt;
**音楽CDのオーディオの規格: サンプリングレート 44.1KHz, 量子化ビット数　16bit, ステレオ&lt;br /&gt;
***1 sample 16 bit&lt;br /&gt;
***bit / sec = 16 * 441000 = 705600 bit&lt;br /&gt;
***stereo 16 * 441000 * 2 = 1411200 bit&lt;br /&gt;
*** byte / sec 1411200 bit / 8 = 176400 byte&lt;br /&gt;
***CD	700000000&lt;br /&gt;
*** sec / CD = 700000000 / 176400 = 3968.3 sec&lt;br /&gt;
*** min / CD = 3968.3 / 60 = 66.1 min&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=0fKBhvDjuy0 Powers of Ten™ (1977) YouTube] / &lt;br /&gt;
[http://eamesoffice.wpengine.com/the-work/powers-of-ten/ Power of Ten Eames Official]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== リンク ==&lt;br /&gt;
&lt;br /&gt;
[[人間とコンピュータ]]&lt;br /&gt;
&lt;br /&gt;
[[コンピュータリテラシーA]]&lt;br /&gt;
&lt;br /&gt;
[[Category:授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%86%E3%83%A9%E3%82%B7%E3%83%BCA</id>
		<title>コンピュータリテラシーA</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%86%E3%83%A9%E3%82%B7%E3%83%BCA"/>
				<updated>2026-05-08T07:38:00Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
&lt;br /&gt;
*参考図書　[http://www.infonet.co.jp/ueyama/ip/index.html Webで学ぶ 情報処理概論] | [http://www.infonet.co.jp/ueyama/ip/JohoShori_II.pdf 無償PDF版]&lt;br /&gt;
&lt;br /&gt;
== [[デジタルとアナログ]] ==&lt;br /&gt;
&lt;br /&gt;
== [[人間とコンピュータ]] ==&lt;br /&gt;
&lt;br /&gt;
== [[アートとテクノロジー]] ==&lt;br /&gt;
&lt;br /&gt;
== [[メディアとコンテンツ]] ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/dec2hex.htm 10進，16進，2進の関係]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/rgb.htm RGBと16進値]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/hex2rgb.html RGB値と色の一覧表]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/shosiki.html いろいろな文字書式のソース例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/font_en.html 英語フォントの例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/font_jp.html 日本語フォントの例]&lt;br /&gt;
*[http://www.j-tanabe.com/fuku/fuku_0.html リンクの例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/table.html tableタグのソース例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/ HTML参考]&lt;br /&gt;
&lt;br /&gt;
;参考サイト&lt;br /&gt;
* タイポグラフィー http://blog.btrax.com/jp/2014/07/01/type1/&lt;br /&gt;
* 伝わるデザイン http://tsutawarudesign.web.fc2.com/index.html&lt;br /&gt;
&lt;br /&gt;
== 論理回路 ==&lt;br /&gt;
&lt;br /&gt;
https://wwws.kobe-c.ac.jp/deguchi/sc180/logic/gate.html&lt;br /&gt;
&lt;br /&gt;
== 参考リンク ==&lt;br /&gt;
質より量、量より質&lt;br /&gt;
http://gigazine.net/news/20130813-prioritize-quantity-than-quality/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:授業|授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%86%E3%83%A9%E3%82%B7%E3%83%BCA</id>
		<title>コンピュータリテラシーA</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%86%E3%83%A9%E3%82%B7%E3%83%BCA"/>
				<updated>2026-05-08T07:35:42Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
&lt;br /&gt;
*参考図書　[http://www.infonet.co.jp/ueyama/ip/index.html Webで学ぶ 情報処理概論] | [http://www.infonet.co.jp/ueyama/ip/JohoShori_II.pdf 無償PDF版]&lt;br /&gt;
&lt;br /&gt;
== [[デジタルとアナログ]] ==&lt;br /&gt;
&lt;br /&gt;
== [[人間とコンピュータ]] ==&lt;br /&gt;
&lt;br /&gt;
== [[アートとテクノロジー]] ==&lt;br /&gt;
&lt;br /&gt;
== [[メディアとコンテンツ]] ==&lt;br /&gt;
&lt;br /&gt;
* WWWサーバとクライアント&lt;br /&gt;
** [http://news.netcraft.com/archives/web_server_survey.html サーバのシェア調査](Webなど)，[http://www.w3counter.com/trends クライアントのシェア調査](OS,ブラウザなど)&lt;br /&gt;
&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/dec2hex.htm 10進，16進，2進の関係]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/rgb.htm RGBと16進値]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/hex2rgb.html RGB値と色の一覧表]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/shosiki.html いろいろな文字書式のソース例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/font_en.html 英語フォントの例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/font_jp.html 日本語フォントの例]&lt;br /&gt;
*[http://www.j-tanabe.com/fuku/fuku_0.html リンクの例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/table.html tableタグのソース例]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/bhtml/ HTML参考]&lt;br /&gt;
&lt;br /&gt;
;参考サイト&lt;br /&gt;
* タイポグラフィー http://blog.btrax.com/jp/2014/07/01/type1/&lt;br /&gt;
* 伝わるデザイン http://tsutawarudesign.web.fc2.com/index.html&lt;br /&gt;
&lt;br /&gt;
== 論理回路 ==&lt;br /&gt;
&lt;br /&gt;
https://wwws.kobe-c.ac.jp/deguchi/sc180/logic/gate.html&lt;br /&gt;
&lt;br /&gt;
== 参考リンク ==&lt;br /&gt;
質より量、量より質&lt;br /&gt;
http://gigazine.net/news/20130813-prioritize-quantity-than-quality/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:授業|授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8"/>
				<updated>2026-05-02T07:15:08Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* その他 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[:Category:授業|授業]] ==&lt;br /&gt;
&lt;br /&gt;
[[コンピュータリテラシーA]]&lt;br /&gt;
&lt;br /&gt;
[[作曲演習]]&lt;br /&gt;
&lt;br /&gt;
[[スケーラブルアート論]]&lt;br /&gt;
&lt;br /&gt;
知性と感性を学ぶ([[Study on Intelligence and Sensibility]]9&lt;br /&gt;
&lt;br /&gt;
カラーサイエンス＆アート([[Color Sciense and Art]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ジェネラティブアート論]] | [[生命情報アート論]]&lt;br /&gt;
&lt;br /&gt;
[[サウンド演習I]] | [[サウンド演習II]] |&lt;br /&gt;
&lt;br /&gt;
[[総合メディア概論]] | [[システムデザイン]] | &lt;br /&gt;
&lt;br /&gt;
[[サイエンスアート特論]] | [[インタラクティブメディア特論I]] | [[インタラクティブメディア特論演習I]]&lt;br /&gt;
&lt;br /&gt;
[[インタラクティブメディア概論A]] &lt;br /&gt;
&lt;br /&gt;
[[Max/MSPによるMIDIプログラミング]] | [[Max/MSPによるオーディオプログラミング]] | &lt;br /&gt;
&lt;br /&gt;
[[MaxとFlashの通信]] | &lt;br /&gt;
[[Google Maps API V3]] | &lt;br /&gt;
[[openFrameworks for Visual studio]] | &lt;br /&gt;
[[VOCALOID seminar]]&lt;br /&gt;
&lt;br /&gt;
[[Scratchプログラミング]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Sf5AoCJWLnw&amp;amp;list=PLZBjTmM9PGD94oPGCrMSwzgPAEc47NHok サウンド演習IIベストセレクション2005-2015]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:研究|研究]] ==&lt;br /&gt;
[[docker]] / [[nginx]] / [[Deep Learning]] / [[Python]] / [[PyTorch]] / [[PHP]]&lt;br /&gt;
&lt;br /&gt;
[[Color Mapping]] / [[NeoPixel]] / [[Gaudi]] / [[ABC Conjecture]]&lt;br /&gt;
&lt;br /&gt;
[https://www.hiroshige.org.uk/ Ukiyoe Utagawa Hiroshige UK]&lt;br /&gt;
&lt;br /&gt;
[http://www.kuhalabo.net/mng/ mng]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/?&amp;amp;_encoding=UTF8&amp;amp;tag=q8labo-22&amp;amp;linkCode=ur2&amp;amp;linkId=6ba01c2aa4181dbe238cfe6cb8cb5846&amp;amp;camp=247&amp;amp;creative=1211 Amazon]&lt;br /&gt;
&lt;br /&gt;
VT Piano http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/@kuhalabo&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/playlist?list=PLZBjTmM9PGD9q3aNDgK0STlnewznEpu4w&lt;br /&gt;
&lt;br /&gt;
== 東京工芸大学 ==&lt;br /&gt;
&lt;br /&gt;
[http://www.t-kougei.ac.jp/index.html 公式サイト] /&lt;br /&gt;
[https://portal.kougei.net/up/faces/login/Com00501A.jsp コウゲイ.net] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOOGEIブログ] / &lt;br /&gt;
[https://100th.t-kougei.ac.jp/activity/ 100周年の取り組み] /&lt;br /&gt;
&lt;br /&gt;
[https://www-lib.t-kougei.ac.jp/ 図書館蔵書検索] /&lt;br /&gt;
[http://www.cc.t-kougei.ac.jp/ 情報処理教育研究センター] / &lt;br /&gt;
[http://gakuen.t-kougei.ac.jp/ GAKUEN] /&lt;br /&gt;
[http://www.univcoop.jp/kougei/ 工芸大生協] / &lt;br /&gt;
[http://order.univ.coop/ 生協Webショッピング] /&lt;br /&gt;
[https://univpc.com/ uniV PC] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOUGEI PEOPLE] /&lt;br /&gt;
[https://collab.t-kougei.ac.jp/ 色の科学芸術センター col.lab]　/ &lt;br /&gt;
[https://www.t-kougei.ac.jp/activity/extension/  芸術学部フェスタ] / &lt;br /&gt;
[https://kougei.repo.nii.ac.jp/ 学術リポジトリ]&lt;br /&gt;
&lt;br /&gt;
=== インタラクティブメディア学科 ===&lt;br /&gt;
&lt;br /&gt;
[http://www.int.t-kougei.ac.jp/ IM学科オフィシャル]&lt;br /&gt;
&lt;br /&gt;
* [[IM Open Lesson|インタラクティブメディア公開レッスン]] &lt;br /&gt;
*[https://blog.t-kougei.ac.jp/int/ IM学科ブログ]&lt;br /&gt;
*[https://prezi.com/wve3-xczpvno/presentation/?present=1 IM学科プレゼン資料(Prezi)]&lt;br /&gt;
*[https://www.youtube.com/watch?v=lDi-T-yIKFk&amp;amp;t=5s IM学科紹介動画(YouTube)]&lt;br /&gt;
*[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q IM学科YouTubeチャンネル]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[教務]]&lt;br /&gt;
&lt;br /&gt;
[[教職課程]]&lt;br /&gt;
&lt;br /&gt;
[[久原研究室]]&lt;br /&gt;
&lt;br /&gt;
[http://socialakiba.com/ 永江研究室]&lt;br /&gt;
&lt;br /&gt;
旧[[:Category:カリキュラム|カリキュラム]]&lt;br /&gt;
&lt;br /&gt;
== 大学院 ==&lt;br /&gt;
&lt;br /&gt;
[[芸術学研究科]]&lt;br /&gt;
&lt;br /&gt;
==  [[:Category:施設|施設]] ==&lt;br /&gt;
&lt;br /&gt;
=== 中野キャンパス ===&lt;br /&gt;
[https://www.t-kougei.ac.jp/access/#nakano アクセス] /&lt;br /&gt;
[https://www.t-kougei.ac.jp/guide/campus/nakano/ キャンパスマップ]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
プロトタイピングラボ / &lt;br /&gt;
IM演習室 / &lt;br /&gt;
IMスタジオA,B,C,D / &lt;br /&gt;
サウンドスタジオ / &lt;br /&gt;
映像スタジオ /&lt;br /&gt;
&lt;br /&gt;
=== 厚木キャンパス ===&lt;br /&gt;
[https://www.t-kougei.ac.jp/access/#atsugi アクセス] /&lt;br /&gt;
[https://www.t-kougei.ac.jp/guide/campus/atsugi/ キャンパスマップ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[学科オフィス]] / &lt;br /&gt;
[[サウンドスタジオ]] /&lt;br /&gt;
[[312教室]] /&lt;br /&gt;
[[共同研究室]] /&lt;br /&gt;
[[Communication Space]] /&lt;br /&gt;
[[専用講義室]] /&lt;br /&gt;
デジタルスタジオ&lt;br /&gt;
&lt;br /&gt;
== インタラクティブメディア学科 ==&lt;br /&gt;
&lt;br /&gt;
[https://blog.t-kougei.ac.jp/int/ ブログ] /&lt;br /&gt;
[http://prezi.com/wve3-xczpvno/?utm_campaign=share&amp;amp;utm_medium=copy&amp;amp;rc=ex0share 学科紹介プレゼンテーション資料(Prezi Classic)] /&lt;br /&gt;
[https://prezi.com/view/2eIvkgJImF4VKYvyIZkI/ 学科紹介ビデオ(Prezi Next)]&lt;br /&gt;
&lt;br /&gt;
== 学会 ==&lt;br /&gt;
&lt;br /&gt;
AI Music Creativity https://aimusiccreativity.org/&lt;br /&gt;
&lt;br /&gt;
== NIME ==&lt;br /&gt;
&lt;br /&gt;
Life Game Orchestra http://www.kuhalabo.net/~kuha/nime/lifegorch/&lt;br /&gt;
&lt;br /&gt;
Tweet Harp http://www.kuhalabo.net/~kuha/nime/tweetharp/&lt;br /&gt;
&lt;br /&gt;
Wii Love Music http://www.kuhalabo.net/~kuha/nime/wiimu/&lt;br /&gt;
&lt;br /&gt;
Multi-track Loop Sequencer http://www.kuhalabo.net/~kuha/nime/lpsqr/&lt;br /&gt;
&lt;br /&gt;
Circle Canon Chorus Frog Round http://www.kuhalabo.net/~kuha/nime/kanon/chorus/&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
== 宇宙物理・天文 ==&lt;br /&gt;
&lt;br /&gt;
宇宙天気予報   https://swc.nict.go.jp/&lt;br /&gt;
&lt;br /&gt;
ケプラーの惑星音階　https://www.asahi-net.or.jp/~hb9t-ktd/music/Japan/Research/Genre/Fantasy/kepler.html&lt;br /&gt;
&lt;br /&gt;
ダジック・アース　https://www.dagik.net/ | https://www.npo.dagik.org/ | http://dagik.org/dow/&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
[[サーバ設定]]&lt;br /&gt;
&lt;br /&gt;
[[:Category:薬|薬]]&lt;br /&gt;
&lt;br /&gt;
[[Kalles Fraktaler]]&lt;br /&gt;
&lt;br /&gt;
[https://www.harjavalta.fi/kulttuuri-ja-vapaa-aika/museo/ Emil Cedercreutzin museo]&lt;br /&gt;
&lt;br /&gt;
[[素数]]&lt;br /&gt;
&lt;br /&gt;
[[誤訳]]&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~kuha/tutorial0/&lt;br /&gt;
&lt;br /&gt;
== Youtube ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCILd88Su8uj8PDWp2kHC_1w/videos?flow=list Takanori Nagae] /&lt;br /&gt;
[https://www.youtube.com/user/kuhalabo/videos?view=57&amp;amp;flow=list Kuhalabo] /&lt;br /&gt;
[https://www.youtube.com/user/kikakukougei kikakukougei] /&lt;br /&gt;
[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q インタラクティブメディア学科] /&lt;br /&gt;
[https://www.youtube.com/channel/UCRHkKJFdiyLG9pQXp_Q4Qtg 工芸大生協] /&lt;br /&gt;
&lt;br /&gt;
== はじめましょう ==&lt;br /&gt;
* [//meta.wikimedia.org/wiki/Help:Contents 利用者案内]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:Configuration_settings/ja 設定の一覧]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ/ja MediaWiki よくある質問と回答]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWikiリリース情報メーリングリスト]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/Scratch%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0</id>
		<title>Scratchプログラミング</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/Scratch%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0"/>
				<updated>2026-05-02T07:13:42Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%82%B9%E3%82%A2%E3%83%BC%E3%83%88%E7%89%B9%E8%AB%96</id>
		<title>サイエンスアート特論</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%82%B9%E3%82%A2%E3%83%BC%E3%83%88%E7%89%B9%E8%AB%96"/>
				<updated>2026-05-02T07:12:38Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8"/>
				<updated>2026-04-30T11:03:53Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* 参考資料 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[:Category:授業|授業]] ==&lt;br /&gt;
&lt;br /&gt;
[[コンピュータリテラシーA]]&lt;br /&gt;
&lt;br /&gt;
[[作曲演習]]&lt;br /&gt;
&lt;br /&gt;
[[スケーラブルアート論]]&lt;br /&gt;
&lt;br /&gt;
知性と感性を学ぶ([[Study on Intelligence and Sensibility]]9&lt;br /&gt;
&lt;br /&gt;
カラーサイエンス＆アート([[Color Sciense and Art]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ジェネラティブアート論]] | [[生命情報アート論]]&lt;br /&gt;
&lt;br /&gt;
[[サウンド演習I]] | [[サウンド演習II]] |&lt;br /&gt;
&lt;br /&gt;
[[総合メディア概論]] | [[システムデザイン]] | &lt;br /&gt;
&lt;br /&gt;
[[サイエンスアート特論]] | [[インタラクティブメディア特論I]] | [[インタラクティブメディア特論演習I]]&lt;br /&gt;
&lt;br /&gt;
[[インタラクティブメディア概論A]] &lt;br /&gt;
&lt;br /&gt;
[[Max/MSPによるMIDIプログラミング]] | [[Max/MSPによるオーディオプログラミング]] | &lt;br /&gt;
&lt;br /&gt;
[[MaxとFlashの通信]] | &lt;br /&gt;
[[Google Maps API V3]] | &lt;br /&gt;
[[openFrameworks for Visual studio]] | &lt;br /&gt;
[[VOCALOID seminar]]&lt;br /&gt;
&lt;br /&gt;
[[Scratchプログラミング]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Sf5AoCJWLnw&amp;amp;list=PLZBjTmM9PGD94oPGCrMSwzgPAEc47NHok サウンド演習IIベストセレクション2005-2015]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:研究|研究]] ==&lt;br /&gt;
[[docker]] / [[nginx]] / [[Deep Learning]] / [[Python]] / [[PyTorch]] / [[PHP]]&lt;br /&gt;
&lt;br /&gt;
[[Color Mapping]] / [[NeoPixel]] / [[Gaudi]] / [[ABC Conjecture]]&lt;br /&gt;
&lt;br /&gt;
[https://www.hiroshige.org.uk/ Ukiyoe Utagawa Hiroshige UK]&lt;br /&gt;
&lt;br /&gt;
[http://www.kuhalabo.net/mng/ mng]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/?&amp;amp;_encoding=UTF8&amp;amp;tag=q8labo-22&amp;amp;linkCode=ur2&amp;amp;linkId=6ba01c2aa4181dbe238cfe6cb8cb5846&amp;amp;camp=247&amp;amp;creative=1211 Amazon]&lt;br /&gt;
&lt;br /&gt;
VT Piano http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/@kuhalabo&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/playlist?list=PLZBjTmM9PGD9q3aNDgK0STlnewznEpu4w&lt;br /&gt;
&lt;br /&gt;
== 東京工芸大学 ==&lt;br /&gt;
&lt;br /&gt;
[http://www.t-kougei.ac.jp/index.html 公式サイト] /&lt;br /&gt;
[https://portal.kougei.net/up/faces/login/Com00501A.jsp コウゲイ.net] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOOGEIブログ] / &lt;br /&gt;
[https://100th.t-kougei.ac.jp/activity/ 100周年の取り組み] /&lt;br /&gt;
&lt;br /&gt;
[https://www-lib.t-kougei.ac.jp/ 図書館蔵書検索] /&lt;br /&gt;
[http://www.cc.t-kougei.ac.jp/ 情報処理教育研究センター] / &lt;br /&gt;
[http://gakuen.t-kougei.ac.jp/ GAKUEN] /&lt;br /&gt;
[http://www.univcoop.jp/kougei/ 工芸大生協] / &lt;br /&gt;
[http://order.univ.coop/ 生協Webショッピング] /&lt;br /&gt;
[https://univpc.com/ uniV PC] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOUGEI PEOPLE] /&lt;br /&gt;
[https://collab.t-kougei.ac.jp/ 色の科学芸術センター col.lab]　/ &lt;br /&gt;
[https://www.t-kougei.ac.jp/activity/extension/  芸術学部フェスタ] / &lt;br /&gt;
[https://kougei.repo.nii.ac.jp/ 学術リポジトリ]&lt;br /&gt;
&lt;br /&gt;
=== インタラクティブメディア学科 ===&lt;br /&gt;
&lt;br /&gt;
[http://www.int.t-kougei.ac.jp/ IM学科オフィシャル]&lt;br /&gt;
&lt;br /&gt;
* [[IM Open Lesson|インタラクティブメディア公開レッスン]] &lt;br /&gt;
*[https://blog.t-kougei.ac.jp/int/ IM学科ブログ]&lt;br /&gt;
*[https://prezi.com/wve3-xczpvno/presentation/?present=1 IM学科プレゼン資料(Prezi)]&lt;br /&gt;
*[https://www.youtube.com/watch?v=lDi-T-yIKFk&amp;amp;t=5s IM学科紹介動画(YouTube)]&lt;br /&gt;
*[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q IM学科YouTubeチャンネル]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[教務]]&lt;br /&gt;
&lt;br /&gt;
[[教職課程]]&lt;br /&gt;
&lt;br /&gt;
[[久原研究室]]&lt;br /&gt;
&lt;br /&gt;
[http://socialakiba.com/ 永江研究室]&lt;br /&gt;
&lt;br /&gt;
旧[[:Category:カリキュラム|カリキュラム]]&lt;br /&gt;
&lt;br /&gt;
== 大学院 ==&lt;br /&gt;
&lt;br /&gt;
[[芸術学研究科]]&lt;br /&gt;
&lt;br /&gt;
==  [[:Category:施設|施設]] ==&lt;br /&gt;
&lt;br /&gt;
=== 中野キャンパス ===&lt;br /&gt;
[https://www.t-kougei.ac.jp/access/#nakano アクセス] /&lt;br /&gt;
[https://www.t-kougei.ac.jp/guide/campus/nakano/ キャンパスマップ]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
プロトタイピングラボ / &lt;br /&gt;
IM演習室 / &lt;br /&gt;
IMスタジオA,B,C,D / &lt;br /&gt;
サウンドスタジオ / &lt;br /&gt;
映像スタジオ /&lt;br /&gt;
&lt;br /&gt;
=== 厚木キャンパス ===&lt;br /&gt;
[https://www.t-kougei.ac.jp/access/#atsugi アクセス] /&lt;br /&gt;
[https://www.t-kougei.ac.jp/guide/campus/atsugi/ キャンパスマップ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[学科オフィス]] / &lt;br /&gt;
[[サウンドスタジオ]] /&lt;br /&gt;
[[312教室]] /&lt;br /&gt;
[[共同研究室]] /&lt;br /&gt;
[[Communication Space]] /&lt;br /&gt;
[[専用講義室]] /&lt;br /&gt;
デジタルスタジオ&lt;br /&gt;
&lt;br /&gt;
== インタラクティブメディア学科 ==&lt;br /&gt;
&lt;br /&gt;
[https://blog.t-kougei.ac.jp/int/ ブログ] /&lt;br /&gt;
[http://prezi.com/wve3-xczpvno/?utm_campaign=share&amp;amp;utm_medium=copy&amp;amp;rc=ex0share 学科紹介プレゼンテーション資料(Prezi Classic)] /&lt;br /&gt;
[https://prezi.com/view/2eIvkgJImF4VKYvyIZkI/ 学科紹介ビデオ(Prezi Next)]&lt;br /&gt;
&lt;br /&gt;
== 学会 ==&lt;br /&gt;
&lt;br /&gt;
AI Music Creativity https://aimusiccreativity.org/&lt;br /&gt;
&lt;br /&gt;
== NIME ==&lt;br /&gt;
&lt;br /&gt;
Life Game Orchestra http://www.kuhalabo.net/~kuha/nime/lifegorch/&lt;br /&gt;
&lt;br /&gt;
Tweet Harp http://www.kuhalabo.net/~kuha/nime/tweetharp/&lt;br /&gt;
&lt;br /&gt;
Wii Love Music http://www.kuhalabo.net/~kuha/nime/wiimu/&lt;br /&gt;
&lt;br /&gt;
Multi-track Loop Sequencer http://www.kuhalabo.net/~kuha/nime/lpsqr/&lt;br /&gt;
&lt;br /&gt;
Circle Canon Chorus Frog Round http://www.kuhalabo.net/~kuha/nime/kanon/chorus/&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
== 宇宙物理・天文 ==&lt;br /&gt;
&lt;br /&gt;
宇宙天気予報   https://swc.nict.go.jp/&lt;br /&gt;
&lt;br /&gt;
ケプラーの惑星音階　https://www.asahi-net.or.jp/~hb9t-ktd/music/Japan/Research/Genre/Fantasy/kepler.html&lt;br /&gt;
&lt;br /&gt;
ダジック・アース　https://www.dagik.net/ | https://www.npo.dagik.org/ | http://dagik.org/dow/&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
[[サーバ設定]]&lt;br /&gt;
&lt;br /&gt;
[[:Category:薬|薬]]&lt;br /&gt;
&lt;br /&gt;
[[Kalles Fraktaler]]&lt;br /&gt;
&lt;br /&gt;
[https://www.harjavalta.fi/kulttuuri-ja-vapaa-aika/museo/ Emil Cedercreutzin museo]&lt;br /&gt;
&lt;br /&gt;
[[素数]]&lt;br /&gt;
&lt;br /&gt;
[[誤訳]]&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~kuha/tutorial0/&lt;br /&gt;
&lt;br /&gt;
;アマゾンの領収書&lt;br /&gt;
https://www.amazon.co.jp/gp/legacy/css/summary/print.html/ref=oh_aui_ajax_invoice?ie=UTF8&amp;amp;orderID=注文番号&lt;br /&gt;
&lt;br /&gt;
== Youtube ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCILd88Su8uj8PDWp2kHC_1w/videos?flow=list Takanori Nagae] /&lt;br /&gt;
[https://www.youtube.com/user/kuhalabo/videos?view=57&amp;amp;flow=list Kuhalabo] /&lt;br /&gt;
[https://www.youtube.com/user/kikakukougei kikakukougei] /&lt;br /&gt;
[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q インタラクティブメディア学科] /&lt;br /&gt;
[https://www.youtube.com/channel/UCRHkKJFdiyLG9pQXp_Q4Qtg 工芸大生協] /&lt;br /&gt;
&lt;br /&gt;
== はじめましょう ==&lt;br /&gt;
* [//meta.wikimedia.org/wiki/Help:Contents 利用者案内]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:Configuration_settings/ja 設定の一覧]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ/ja MediaWiki よくある質問と回答]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWikiリリース情報メーリングリスト]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%82%B9%E3%82%BF%E3%82%B8%E3%82%AA2010</id>
		<title>サウンドスタジオ2010</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%82%B9%E3%82%BF%E3%82%B8%E3%82%AA2010"/>
				<updated>2026-04-30T11:02:39Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E6%95%99%E8%81%B7%E8%AA%B2%E7%A8%8B</id>
		<title>教職課程</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E6%95%99%E8%81%B7%E8%AA%B2%E7%A8%8B"/>
				<updated>2026-04-30T10:56:29Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E8%8A%B8%E8%A1%93%E5%AD%A6%E7%A0%94%E7%A9%B6%E7%A7%91</id>
		<title>芸術学研究科</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E8%8A%B8%E8%A1%93%E5%AD%A6%E7%A0%94%E7%A9%B6%E7%A7%91"/>
				<updated>2026-04-30T10:56:06Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8"/>
				<updated>2026-04-30T10:54:01Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* 研究 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[:Category:授業|授業]] ==&lt;br /&gt;
&lt;br /&gt;
[[コンピュータリテラシーA]]&lt;br /&gt;
&lt;br /&gt;
[[作曲演習]]&lt;br /&gt;
&lt;br /&gt;
[[スケーラブルアート論]]&lt;br /&gt;
&lt;br /&gt;
知性と感性を学ぶ([[Study on Intelligence and Sensibility]]9&lt;br /&gt;
&lt;br /&gt;
カラーサイエンス＆アート([[Color Sciense and Art]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ジェネラティブアート論]] | [[生命情報アート論]]&lt;br /&gt;
&lt;br /&gt;
[[サウンド演習I]] | [[サウンド演習II]] |&lt;br /&gt;
&lt;br /&gt;
[[総合メディア概論]] | [[システムデザイン]] | &lt;br /&gt;
&lt;br /&gt;
[[サイエンスアート特論]] | [[インタラクティブメディア特論I]] | [[インタラクティブメディア特論演習I]]&lt;br /&gt;
&lt;br /&gt;
[[インタラクティブメディア概論A]] &lt;br /&gt;
&lt;br /&gt;
[[Max/MSPによるMIDIプログラミング]] | [[Max/MSPによるオーディオプログラミング]] | &lt;br /&gt;
&lt;br /&gt;
[[MaxとFlashの通信]] | &lt;br /&gt;
[[Google Maps API V3]] | &lt;br /&gt;
[[openFrameworks for Visual studio]] | &lt;br /&gt;
[[VOCALOID seminar]]&lt;br /&gt;
&lt;br /&gt;
[[Scratchプログラミング]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Sf5AoCJWLnw&amp;amp;list=PLZBjTmM9PGD94oPGCrMSwzgPAEc47NHok サウンド演習IIベストセレクション2005-2015]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:研究|研究]] ==&lt;br /&gt;
[[docker]] / [[nginx]] / [[Deep Learning]] / [[Python]] / [[PyTorch]] / [[PHP]]&lt;br /&gt;
&lt;br /&gt;
[[Color Mapping]] / [[NeoPixel]] / [[Gaudi]] / [[ABC Conjecture]]&lt;br /&gt;
&lt;br /&gt;
[https://www.hiroshige.org.uk/ Ukiyoe Utagawa Hiroshige UK]&lt;br /&gt;
&lt;br /&gt;
[http://www.kuhalabo.net/mng/ mng]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/?&amp;amp;_encoding=UTF8&amp;amp;tag=q8labo-22&amp;amp;linkCode=ur2&amp;amp;linkId=6ba01c2aa4181dbe238cfe6cb8cb5846&amp;amp;camp=247&amp;amp;creative=1211 Amazon]&lt;br /&gt;
&lt;br /&gt;
VT Piano http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/@kuhalabo&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/playlist?list=PLZBjTmM9PGD9q3aNDgK0STlnewznEpu4w&lt;br /&gt;
&lt;br /&gt;
== 東京工芸大学 ==&lt;br /&gt;
&lt;br /&gt;
[http://www.t-kougei.ac.jp/index.html 公式サイト] /&lt;br /&gt;
[https://portal.kougei.net/up/faces/login/Com00501A.jsp コウゲイ.net] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOOGEIブログ] / &lt;br /&gt;
[https://100th.t-kougei.ac.jp/activity/ 100周年の取り組み] /&lt;br /&gt;
&lt;br /&gt;
[https://www-lib.t-kougei.ac.jp/ 図書館蔵書検索] /&lt;br /&gt;
[http://www.cc.t-kougei.ac.jp/ 情報処理教育研究センター] / &lt;br /&gt;
[http://gakuen.t-kougei.ac.jp/ GAKUEN] /&lt;br /&gt;
[http://www.univcoop.jp/kougei/ 工芸大生協] / &lt;br /&gt;
[http://order.univ.coop/ 生協Webショッピング] /&lt;br /&gt;
[https://univpc.com/ uniV PC] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOUGEI PEOPLE] /&lt;br /&gt;
[https://collab.t-kougei.ac.jp/ 色の科学芸術センター col.lab]　/ &lt;br /&gt;
[https://www.t-kougei.ac.jp/activity/extension/  芸術学部フェスタ] / &lt;br /&gt;
[https://kougei.repo.nii.ac.jp/ 学術リポジトリ]&lt;br /&gt;
&lt;br /&gt;
=== インタラクティブメディア学科 ===&lt;br /&gt;
&lt;br /&gt;
[http://www.int.t-kougei.ac.jp/ IM学科オフィシャル]&lt;br /&gt;
&lt;br /&gt;
* [[IM Open Lesson|インタラクティブメディア公開レッスン]] &lt;br /&gt;
*[https://blog.t-kougei.ac.jp/int/ IM学科ブログ]&lt;br /&gt;
*[https://prezi.com/wve3-xczpvno/presentation/?present=1 IM学科プレゼン資料(Prezi)]&lt;br /&gt;
*[https://www.youtube.com/watch?v=lDi-T-yIKFk&amp;amp;t=5s IM学科紹介動画(YouTube)]&lt;br /&gt;
*[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q IM学科YouTubeチャンネル]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[教務]]&lt;br /&gt;
&lt;br /&gt;
[[教職課程]]&lt;br /&gt;
&lt;br /&gt;
[[久原研究室]]&lt;br /&gt;
&lt;br /&gt;
[http://socialakiba.com/ 永江研究室]&lt;br /&gt;
&lt;br /&gt;
旧[[:Category:カリキュラム|カリキュラム]]&lt;br /&gt;
&lt;br /&gt;
== 大学院 ==&lt;br /&gt;
&lt;br /&gt;
[[芸術学研究科]]&lt;br /&gt;
&lt;br /&gt;
==  [[:Category:施設|施設]] ==&lt;br /&gt;
&lt;br /&gt;
=== 中野キャンパス ===&lt;br /&gt;
[https://www.t-kougei.ac.jp/access/#nakano アクセス] /&lt;br /&gt;
[https://www.t-kougei.ac.jp/guide/campus/nakano/ キャンパスマップ]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
プロトタイピングラボ / &lt;br /&gt;
IM演習室 / &lt;br /&gt;
IMスタジオA,B,C,D / &lt;br /&gt;
サウンドスタジオ / &lt;br /&gt;
映像スタジオ /&lt;br /&gt;
&lt;br /&gt;
=== 厚木キャンパス ===&lt;br /&gt;
[https://www.t-kougei.ac.jp/access/#atsugi アクセス] /&lt;br /&gt;
[https://www.t-kougei.ac.jp/guide/campus/atsugi/ キャンパスマップ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[学科オフィス]] / &lt;br /&gt;
[[サウンドスタジオ]] /&lt;br /&gt;
[[312教室]] /&lt;br /&gt;
[[共同研究室]] /&lt;br /&gt;
[[Communication Space]] /&lt;br /&gt;
[[専用講義室]] /&lt;br /&gt;
デジタルスタジオ&lt;br /&gt;
&lt;br /&gt;
== インタラクティブメディア学科 ==&lt;br /&gt;
&lt;br /&gt;
[https://blog.t-kougei.ac.jp/int/ ブログ] /&lt;br /&gt;
[http://prezi.com/wve3-xczpvno/?utm_campaign=share&amp;amp;utm_medium=copy&amp;amp;rc=ex0share 学科紹介プレゼンテーション資料(Prezi Classic)] /&lt;br /&gt;
[https://prezi.com/view/2eIvkgJImF4VKYvyIZkI/ 学科紹介ビデオ(Prezi Next)]&lt;br /&gt;
&lt;br /&gt;
== 参考資料 ==&lt;br /&gt;
&lt;br /&gt;
[http://www.kuhalabo.net/~kuha/tutorial0/ 旧チュートリアルサイト]&lt;br /&gt;
&lt;br /&gt;
[http://tutorial.unity3d.jp/ はじめてのUnity]&lt;br /&gt;
&lt;br /&gt;
https://ars.electronica.art/prix/en/&lt;br /&gt;
&lt;br /&gt;
https://www.artofthecell.com/&lt;br /&gt;
&lt;br /&gt;
== 学会 ==&lt;br /&gt;
&lt;br /&gt;
AI Music Creativity https://aimusiccreativity.org/&lt;br /&gt;
&lt;br /&gt;
== NIME ==&lt;br /&gt;
&lt;br /&gt;
Life Game Orchestra http://www.kuhalabo.net/~kuha/nime/lifegorch/&lt;br /&gt;
&lt;br /&gt;
Tweet Harp http://www.kuhalabo.net/~kuha/nime/tweetharp/&lt;br /&gt;
&lt;br /&gt;
Wii Love Music http://www.kuhalabo.net/~kuha/nime/wiimu/&lt;br /&gt;
&lt;br /&gt;
Multi-track Loop Sequencer http://www.kuhalabo.net/~kuha/nime/lpsqr/&lt;br /&gt;
&lt;br /&gt;
Circle Canon Chorus Frog Round http://www.kuhalabo.net/~kuha/nime/kanon/chorus/&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
== 宇宙物理・天文 ==&lt;br /&gt;
&lt;br /&gt;
宇宙天気予報   https://swc.nict.go.jp/&lt;br /&gt;
&lt;br /&gt;
ケプラーの惑星音階　https://www.asahi-net.or.jp/~hb9t-ktd/music/Japan/Research/Genre/Fantasy/kepler.html&lt;br /&gt;
&lt;br /&gt;
ダジック・アース　https://www.dagik.net/ | https://www.npo.dagik.org/ | http://dagik.org/dow/&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
[[サーバ設定]]&lt;br /&gt;
&lt;br /&gt;
[[:Category:薬|薬]]&lt;br /&gt;
&lt;br /&gt;
[[Kalles Fraktaler]]&lt;br /&gt;
&lt;br /&gt;
[https://www.harjavalta.fi/kulttuuri-ja-vapaa-aika/museo/ Emil Cedercreutzin museo]&lt;br /&gt;
&lt;br /&gt;
[[素数]]&lt;br /&gt;
&lt;br /&gt;
[[誤訳]]&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~kuha/tutorial0/&lt;br /&gt;
&lt;br /&gt;
;アマゾンの領収書&lt;br /&gt;
https://www.amazon.co.jp/gp/legacy/css/summary/print.html/ref=oh_aui_ajax_invoice?ie=UTF8&amp;amp;orderID=注文番号&lt;br /&gt;
&lt;br /&gt;
== Youtube ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCILd88Su8uj8PDWp2kHC_1w/videos?flow=list Takanori Nagae] /&lt;br /&gt;
[https://www.youtube.com/user/kuhalabo/videos?view=57&amp;amp;flow=list Kuhalabo] /&lt;br /&gt;
[https://www.youtube.com/user/kikakukougei kikakukougei] /&lt;br /&gt;
[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q インタラクティブメディア学科] /&lt;br /&gt;
[https://www.youtube.com/channel/UCRHkKJFdiyLG9pQXp_Q4Qtg 工芸大生協] /&lt;br /&gt;
&lt;br /&gt;
== はじめましょう ==&lt;br /&gt;
* [//meta.wikimedia.org/wiki/Help:Contents 利用者案内]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:Configuration_settings/ja 設定の一覧]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ/ja MediaWiki よくある質問と回答]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWikiリリース情報メーリングリスト]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E6%95%99%E5%8B%99</id>
		<title>教務</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E6%95%99%E5%8B%99"/>
				<updated>2026-04-30T10:53:32Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：内容を「== 履修にあたって ==」で置換&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 履修にあたって ==&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%A9%E3%83%96%E3%83%AB%E3%82%A2%E3%83%BC%E3%83%88%E8%AB%96</id>
		<title>スケーラブルアート論</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%A9%E3%83%96%E3%83%AB%E3%82%A2%E3%83%BC%E3%83%88%E8%AB%96"/>
				<updated>2026-01-27T10:16:15Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* 概要 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
;前提スキル&lt;br /&gt;
*一年生の時にメディアプログラミング演習Iを履修し、基本的なProcessingのプログラミングができること。&lt;br /&gt;
** 不安な人は、以下の野口先生のメディアプログラミング演習Iのサイトで復習してください。https://r-dimension.xsrv.jp/classes_j/category/processing/&lt;br /&gt;
*個人のPC（Windows、MacOSのどちらでもよい）に自分でProcessingの環境を構築できることが望ましい。&lt;br /&gt;
&lt;br /&gt;
;授業概要&lt;br /&gt;
* インタラクティブアートは芸術を基盤として科学や工学を統合する新しい領域で、プログラミングなどのIT技術によって実現されます。プログラミングによって制作プロセスをアルゴリズム化した作品は、拡張性が高く（スケーラブル）、多様性を持たせることが容易です。これが、スケーラブルアートです。&lt;br /&gt;
* この授業では、その中でも、生物に見られる生成的（ジェネラティブ）な特徴をアートに応用したジェネラティブアートに関連する分野を扱います。その中には、人工生命、フラクタル、オートマトン、遺伝的アルゴリズム、ニューラルネットワークなどといったものが含まれます。&lt;br /&gt;
*プログラミングを使用して、スケーラブルな特徴を持つ作品を作成します。&lt;br /&gt;
&lt;br /&gt;
;使用ソフト&lt;br /&gt;
*Processingを使用します。https://processing.org/&lt;br /&gt;
&lt;br /&gt;
;到達目標&lt;br /&gt;
*スケーラブルアートについて理解し、応用例を作成できる。&lt;br /&gt;
*生物の特徴と生物的なシステムについて理解する。&lt;br /&gt;
*Processingを使ってジェネラティブアートのプログラミングができる。&lt;br /&gt;
&lt;br /&gt;
;成績評価&lt;br /&gt;
*確認テスト、課題、まとめテストで、100点満点で評価します。&lt;br /&gt;
&lt;br /&gt;
;参考資料&lt;br /&gt;
*「[http://www.kuhalabo.net/kxoops/modules/d3blog/details.php?bid=178 数学から創るジェネラティブアート ―Processingで学ぶかたちのデザイン]」([https://www.openprocessing.org/user/57914 Generative Art with Math])&lt;br /&gt;
*「The Nature of Code: Simulating Natural Systems with Processing」&lt;br /&gt;
**英語PDF版は無料でダウンロードできます。http://feiramoderna.net/download/pos-positivo/SHIFFMAN-Daniel/Daniel-Shiffman_Nature-of-code.pdf&lt;br /&gt;
**日本語PDF版を右のサイトで購入できます。https://wgn-obs.shop-pro.jp/?pid=144269527&lt;br /&gt;
**ソースコードがGithubで公開されています。https://github.com/nature-of-code/&lt;br /&gt;
*Processingのチュートリアル [https://processing.org/tutorials/ Processing Tutorial]&lt;br /&gt;
&lt;br /&gt;
== 開発環境 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
開発環境については、以下を参照してください。&lt;br /&gt;
&lt;br /&gt;
* https://processing.org/&lt;br /&gt;
* p5.js http://p5js.org&lt;br /&gt;
** ドットインストールp5.js入門 http://dotinstall.com/lessons/basic_p5js&lt;br /&gt;
** Generative Design with p5.js http://www.generative-gestaltung.de/&lt;br /&gt;
* Generative Art with Math https://www.openprocessing.org/user/57914&lt;br /&gt;
** https://gihyo.jp/book/2019/978-4-297-10463-4/support/&lt;br /&gt;
&lt;br /&gt;
* Generative Design&lt;br /&gt;
**https://github.com/generative-design/Code-Package-Processing-3.x&lt;br /&gt;
&lt;br /&gt;
* Reference https://processing.org/reference&lt;br /&gt;
&lt;br /&gt;
== 生物と情報とアート ==&lt;br /&gt;
* 生物とは? 生物の特徴とは？&lt;br /&gt;
** 例：小石と貝殻&lt;br /&gt;
** 「生物と無生物の違いは何か？」説明してみよう。&lt;br /&gt;
* ゲノムのDNAマップ [https://www.ncbi.nlm.nih.gov/genome/gdv/ NCBI Genome Map Viewer]&lt;br /&gt;
* [http://www.kuhalabo.net/kxoops/modules/d3blog/details.php?bid=5 ヒト一人を再生するのに必要な情報量は？]&lt;br /&gt;
&lt;br /&gt;
;[https://www.jw.org/ja/%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%83%BC/%E3%83%93%E3%83%87%E3%82%AA/%E5%89%B5%E9%80%A0%E3%81%AE%E9%A9%9A%E7%95%B0%E3%81%AF%E7%A5%9E%E3%81%AE%E6%A0%84%E5%85%89%E3%82%92%E8%A1%A8%E3%82%8F%E3%81%99/%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3/ 自然界の興味深いパターン]&lt;br /&gt;
*自己相似性、フラクタル&lt;br /&gt;
**雪の結晶(0:25)&lt;br /&gt;
**樹木(1:17)&lt;br /&gt;
**オウム貝(1:30)&lt;br /&gt;
*らせん、渦巻き状パターン&lt;br /&gt;
*黄金角とフィボナッチ数列(3:00)&lt;br /&gt;
&lt;br /&gt;
;ジェネラティブアート&lt;br /&gt;
:自律性&lt;br /&gt;
:予測不可能性&lt;br /&gt;
:パラメータ変形&lt;br /&gt;
:偶発性&lt;br /&gt;
:自己相似性&lt;br /&gt;
:再帰性&lt;br /&gt;
:対称性&lt;br /&gt;
:周期性&lt;br /&gt;
:双対性&lt;br /&gt;
:抽象化と具体化&lt;br /&gt;
&lt;br /&gt;
== 数学と力学の基礎 ==&lt;br /&gt;
[https://github.com/nature-of-code/noc-examples-processing/tree/master/chp01_vectors Nature of Code Chapter 1 Vector Git Processing]&lt;br /&gt;
&lt;br /&gt;
=== ベクトル ===&lt;br /&gt;
「Nature of Code」第1章の「1.1-1.6」[https://wtf.tw/ref/shiffman.pdf pdf]&lt;br /&gt;
&lt;br /&gt;
*ベクトルを復習するための動画：[https://www.youtube.com/playlist?list=PLiRy47VSZM635-b9NzlvebaOzI6m9zzvG 高校数学Bベクトルの定義・成分]&lt;br /&gt;
&lt;br /&gt;
=== 位置・速度・加速度 ===&lt;br /&gt;
「Nature of Code」第1章の「1.7-1.10」[https://wtf.tw/ref/shiffman.pdf pdf]&lt;br /&gt;
&lt;br /&gt;
* 動くボールの位置、速度、加速度はベクトルとして表すことができます。&lt;br /&gt;
* 速度は、位置の変化の割合、すなわち「次の位置＝現在位置＋速度」&lt;br /&gt;
**秒速10m/sのボールの1秒後の位置＝現在位置＋10&lt;br /&gt;
*加速度は、速度の変化の割合、すなわち「次の速度＝現在速度＋加速度」&lt;br /&gt;
**自然落下運動の加速度は、重力加速度といい、9.8m/s2（秒の2乗）&lt;br /&gt;
**したがって、自然落下するボールの1秒後の速度＝現在速度＋9.8&lt;br /&gt;
&lt;br /&gt;
;重力加速度　国土地理院 「重力を知る」https://www.gsi.go.jp/buturisokuchi/grageo_gravity.html&lt;br /&gt;
&lt;br /&gt;
=== トポロジー ===&lt;br /&gt;
;パックマン型2次元世界は、3次元ではトーラス（ドーナツ型）&lt;br /&gt;
: https://wakara.co.jp/mathlog/20200204&lt;br /&gt;
&lt;br /&gt;
== 数学アート ==&lt;br /&gt;
&lt;br /&gt;
=== [[矩形分割]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[フィボナッチ数列]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[らせん]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[整数の合同]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[コラッツ予想]] ===&lt;br /&gt;
&lt;br /&gt;
== 人工生命(ALife) ==&lt;br /&gt;
&lt;br /&gt;
=== [[セルオートマトン]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ラングトンのアリ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[レイノルズのボイド]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[反応拡散系]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[フラクタル]] ===&lt;br /&gt;
&lt;br /&gt;
== 人工知能(AI) ==&lt;br /&gt;
&lt;br /&gt;
=== [[Genetic Algorithm]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Neural Networks]] ===&lt;br /&gt;
&lt;br /&gt;
== Processing Samples ==&lt;br /&gt;
&lt;br /&gt;
===音に反応する円===&lt;br /&gt;
&lt;br /&gt;
minimライブラリーをインストールする。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
* Circles responding Sound Level&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
import ddf.minim.spi.*;&lt;br /&gt;
import ddf.minim.signals.*;&lt;br /&gt;
import ddf.minim.*;&lt;br /&gt;
import ddf.minim.analysis.*;&lt;br /&gt;
import ddf.minim.ugens.*;&lt;br /&gt;
import ddf.minim.effects.*;&lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioInput in;&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
  size(500, 500);&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  in = minim.getLineIn(Minim.STEREO, 512); &lt;br /&gt;
  background(0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw(){&lt;br /&gt;
  colorMode(RGB, 255);&lt;br /&gt;
  fill(0, 150);&lt;br /&gt;
  rect(-1, -1, width, height);&lt;br /&gt;
  colorMode(HSB, 360, 100, 100);&lt;br /&gt;
  float brightness = 50 + map(in.mix.level(), 0, 0.5, 0, 50);&lt;br /&gt;
  float hue = map(in.mix.level(), 0, 0.7, 0, 360);&lt;br /&gt;
  fill(hue, 100, brightness);&lt;br /&gt;
  float radious = 50 + map(in.mix.level(), 0, 0.5, 0, 100);&lt;br /&gt;
  int x = 250;&lt;br /&gt;
  int y = 250;&lt;br /&gt;
  ellipse( x, y, radious *2, radious * 2);&lt;br /&gt;
}&lt;br /&gt;
void stop(){&lt;br /&gt;
  in.close();&lt;br /&gt;
  minim.stop();&lt;br /&gt;
  super.stop();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== カメラ入力 ===&lt;br /&gt;
Video|GStreamer-based video library for Processingライブラリをインストール。&lt;br /&gt;
&lt;br /&gt;
;使用可能なカメラのリスト出力&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import processing.video.*;&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
  size(320, 240);&lt;br /&gt;
  &lt;br /&gt;
  String[] cameras = Capture.list();&lt;br /&gt;
  &lt;br /&gt;
  for(int i=0; i&amp;lt;cameras.length; i++){&lt;br /&gt;
    println(&amp;quot;[&amp;quot; + i + &amp;quot;] &amp;quot; + cameras[i]);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;カメラ画像の出力&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import processing.video.*;&lt;br /&gt;
Capture cam;&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
  size(640, 480);&lt;br /&gt;
  &lt;br /&gt;
  String[] cameras = Capture.list();&lt;br /&gt;
  for(int i=0; i&amp;lt;cameras.length; i++){&lt;br /&gt;
    println(&amp;quot;[&amp;quot; + i + &amp;quot;] &amp;quot; + cameras[i]);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  cam = new Capture(this, cameras[1]);&lt;br /&gt;
  cam.start();  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw(){&lt;br /&gt;
  if(cam.available() == true){&lt;br /&gt;
    cam.read();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  image(cam, 0, 0);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;差分から動きを検出&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import processing.video.*;&lt;br /&gt;
 &lt;br /&gt;
int numPixels;&lt;br /&gt;
int[] previousFrame;&lt;br /&gt;
int noiseFilter = 50;&lt;br /&gt;
Capture video;&lt;br /&gt;
 &lt;br /&gt;
void setup() {&lt;br /&gt;
  size(640, 480);&lt;br /&gt;
 &lt;br /&gt;
  video = new Capture(this, width, height, 30);&lt;br /&gt;
  video.start();&lt;br /&gt;
 &lt;br /&gt;
  numPixels = video.width * video.height;&lt;br /&gt;
  previousFrame = new int[numPixels];&lt;br /&gt;
  loadPixels();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
  if (video.available()) {&lt;br /&gt;
    video.read();&lt;br /&gt;
    video.loadPixels();&lt;br /&gt;
 &lt;br /&gt;
    int movementSum = 0;&lt;br /&gt;
    for (int i = 0; i &amp;lt; numPixels; i++) {&lt;br /&gt;
      color currColor = video.pixels[i];&lt;br /&gt;
      color prevColor = previousFrame[i];&lt;br /&gt;
 &lt;br /&gt;
      //R, G, B&lt;br /&gt;
      int currR = (currColor &amp;gt;&amp;gt; 16) &amp;amp; 0xFF;&lt;br /&gt;
      int currG = (currColor &amp;gt;&amp;gt; 8) &amp;amp; 0xFF;&lt;br /&gt;
      int currB = currColor &amp;amp; 0xFF;&lt;br /&gt;
 &lt;br /&gt;
      //&lt;br /&gt;
      int prevR = (prevColor &amp;gt;&amp;gt; 16) &amp;amp; 0xFF;&lt;br /&gt;
      int prevG = (prevColor &amp;gt;&amp;gt; 8) &amp;amp; 0xFF;&lt;br /&gt;
      int prevB = prevColor &amp;amp; 0xFF;&lt;br /&gt;
 &lt;br /&gt;
      //&lt;br /&gt;
      int diffR = abs(currR - prevR);&lt;br /&gt;
      int diffG = abs(currG - prevG);&lt;br /&gt;
      int diffB = abs(currB - prevB);&lt;br /&gt;
 &lt;br /&gt;
      //noiseFilter&lt;br /&gt;
      if (diffR + diffG + diffB &amp;gt; noiseFilter) {&lt;br /&gt;
        movementSum ++;&lt;br /&gt;
        pixels[i] = color(currR, currG, currB);&lt;br /&gt;
        //&lt;br /&gt;
        //pixels[i] = 0xFF000000 | (currR &amp;lt;&amp;lt; 16) | (currG &amp;lt;&amp;lt; 8) | currB;&lt;br /&gt;
      } else {&lt;br /&gt;
        pixels[i] = color(0);&lt;br /&gt;
      }&lt;br /&gt;
 &lt;br /&gt;
      //&lt;br /&gt;
      previousFrame[i] = currColor;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    updatePixels();    //&lt;br /&gt;
    println(movementSum);    //&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 引力と加速度 ===&lt;br /&gt;
&lt;br /&gt;
「Nature of Code」第1章の「1.10 Interactivity with Acceleration」(p57)より。（一部改変）[https://wtf.tw/ref/shiffman.pdf pdf]&lt;br /&gt;
*粒子はマウスポインタに引力で引き付けられれ、軌跡を残しながらマウスに近づく。&lt;br /&gt;
*引力は、距離が近いほど、強くなる（反比例）。&lt;br /&gt;
*速度には上限(topspeed)があり、引力と粒子の運動量（速度）が釣り合うと、マウスのまわりを回る惑星のような動きになる。&lt;br /&gt;
*Moverクラスの作成&lt;br /&gt;
**ベクトルPVectorを使い、location（位置）、velocity（速度）、acceleration（加速度）定義し、力学運動を記述している。&lt;br /&gt;
** 速度は、現在速度に加速度を加算　velocity.add(acceleration);&lt;br /&gt;
** 位置は、現在位置に速を加算　location.add(velocity);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mover[] movers = new Mover[1000];//An array of objects&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(1000, 1000);&lt;br /&gt;
  smooth();&lt;br /&gt;
  background(0);&lt;br /&gt;
  for (int i = 0; i &amp;lt; movers.length; i++) {&lt;br /&gt;
    movers[i] = new Mover();// Initialize each object in the array.&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
void draw() {&lt;br /&gt;
//  background(0);&lt;br /&gt;
  fill(0,40);&lt;br /&gt;
  rect(0,0,width,height);&lt;br /&gt;
  for (int i = 0; i &amp;lt; movers.length; i++) {&lt;br /&gt;
    //Calling functions on all the objects in the array&lt;br /&gt;
    movers[i].update();&lt;br /&gt;
    movers[i].checkEdges();&lt;br /&gt;
    movers[i].display();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class Mover {&lt;br /&gt;
  PVector location;&lt;br /&gt;
  PVector velocity;&lt;br /&gt;
  PVector acceleration;&lt;br /&gt;
  float topspeed;&lt;br /&gt;
  Mover() {&lt;br /&gt;
    location = new PVector(random(width), random(height));&lt;br /&gt;
    velocity = new PVector(0, 0);&lt;br /&gt;
    topspeed = 4.5;&lt;br /&gt;
  }&lt;br /&gt;
  void update() {&lt;br /&gt;
    //Our algorithm for calculating acceleration:&lt;br /&gt;
    //Find the vector pointing towards the mouse.&lt;br /&gt;
    PVector mouse = new PVector(mouseX, mouseY);&lt;br /&gt;
    PVector dir = PVector.sub(mouse, location);&lt;br /&gt;
    float magn = dir.mag();&lt;br /&gt;
    dir.normalize();// Normalize.&lt;br /&gt;
    dir.mult(13 / magn );&lt;br /&gt;
//    dir.mult(0.5);// Scale.&lt;br /&gt;
    acceleration = dir;// Set to acceleration.&lt;br /&gt;
    //Motion 101! Velocity changes by acceleration. Location changes by velocity.&lt;br /&gt;
    velocity.add(acceleration);&lt;br /&gt;
    velocity.limit(topspeed);&lt;br /&gt;
    location.add(velocity);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  void display() {// Display the Mover&lt;br /&gt;
//    stroke(0);&lt;br /&gt;
    noStroke();&lt;br /&gt;
    fill(250,255,100);&lt;br /&gt;
    ellipse(location.x, location.y, 10, 10);&lt;br /&gt;
  }&lt;br /&gt;
  void checkEdges() {// What to do at the edges&lt;br /&gt;
    if (location.x &amp;gt; width) {&lt;br /&gt;
      location.x = 0;&lt;br /&gt;
    } else if (location.x &amp;lt; 0) {&lt;br /&gt;
      location.x = width;&lt;br /&gt;
    }&lt;br /&gt;
    if (location.y &amp;gt; height) {&lt;br /&gt;
      location.y = 0;&lt;br /&gt;
    } else if (location.y &amp;lt; 0) {&lt;br /&gt;
      location.y = height;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 画像ファイルの結合 ===&lt;br /&gt;
imagesフォルダにある画像_i000.pngから_i007.png(640*480)を縦2列、横4行に並べて結合する。&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;004&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;001&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;005&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;002&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;006&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;003&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;007&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
String folderName = &amp;quot;images&amp;quot;;&lt;br /&gt;
String filePrefix = &amp;quot;_i&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
int imageWidth = 640;&lt;br /&gt;
int imageHeight = 480;&lt;br /&gt;
&lt;br /&gt;
int margin = 0;&lt;br /&gt;
&lt;br /&gt;
int imageNumX = 2;&lt;br /&gt;
int imageNumY = 4;&lt;br /&gt;
int imageNum = imageNumX * imageNumY;&lt;br /&gt;
// X*Y&lt;br /&gt;
&lt;br /&gt;
int canvasWidth = imageNumX * imageWidth;&lt;br /&gt;
int canvasHeight = imageNumY * imageHeight;&lt;br /&gt;
&lt;br /&gt;
PImage images[] = new PImage[imageNum];&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; imageNum; i++) {&lt;br /&gt;
    images[i] = loadImage(folderName + &amp;quot;/&amp;quot; + filePrefix + nf(i, 3) + &amp;quot;.png&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  surface.setSize(canvasWidth, canvasHeight);&lt;br /&gt;
  noLoop();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  for (int i = 0; i &amp;lt; imageNumX; i++) {&lt;br /&gt;
    for(int j = 0; j &amp;lt; imageNumY; j++){&lt;br /&gt;
      image(images[i*imageNumY + j], imageWidth * i, imageHeight * j, imageWidth, imageHeight);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  save(folderName + &amp;quot;_combine.png&amp;quot;);&lt;br /&gt;
  exit();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===配列のシャッフル===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int[] nN = {0,1,2,3,4,5,6}; &lt;br /&gt;
&lt;br /&gt;
for(int i=(nN.length - 1); i&amp;gt;0; --i) {&lt;br /&gt;
  int j = (int)random(i+1);&lt;br /&gt;
  int tmp = nN[i];&lt;br /&gt;
  nN[i] = nN[j];&lt;br /&gt;
  nN[j] = tmp;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===クラスオブジェクトのソート===&lt;br /&gt;
;バブルソート&lt;br /&gt;
rectsをメンバlevelの値の小さい順にソートする。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Kurasu[] rects = new kurasu[100];&lt;br /&gt;
&lt;br /&gt;
for(int j=0; j &amp;lt; rects.length - 1; j++){&lt;br /&gt;
  for(int i=0; i &amp;lt; rects.length - 1; i++){&lt;br /&gt;
    if(rects[i].level &amp;gt; rects[i+1].level){&lt;br /&gt;
      Kurasu tmp = rects[i+1];&lt;br /&gt;
      rects[i+1] = rects[i];&lt;br /&gt;
      rects[i] = tmp;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class Kurasu{&lt;br /&gt;
  int index;&lt;br /&gt;
  int level;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===3D回転===&lt;br /&gt;
;X軸を中心にフェルマーらせんを回転&lt;br /&gt;
* '''rotateX()'''を使う (https://processing.org/reference/rotateX_.html)&lt;br /&gt;
* '''size()'''に'''P3D'''を指定&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int itr = 0;  //描画の繰り返し回数&lt;br /&gt;
float scalar = 5; //拡大倍率&lt;br /&gt;
float rotation;&lt;br /&gt;
float r =0;&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(500, 500, P3D); // 3D座標を指定する&lt;br /&gt;
  background(255);  //背景を白くする&lt;br /&gt;
  rotation = (1 + sqrt(5)) / 2;&lt;br /&gt;
}&lt;br /&gt;
void draw() {&lt;br /&gt;
  translate(width / 2, height / 2);  //描画ウィンドウの中心に移動&lt;br /&gt;
  rotateX(r);&lt;br /&gt;
  fill(0);  //点を黒く塗る&lt;br /&gt;
&lt;br /&gt;
  float theta = 2 * PI * itr * rotation; //回転角&lt;br /&gt;
  PVector v = PVector.fromAngle(theta);&lt;br /&gt;
  v.mult(scalar * sqrt(itr));&lt;br /&gt;
  ellipse(v.x, v.y, scalar, scalar); //点を描画&lt;br /&gt;
   &lt;br /&gt;
  itr++;&lt;br /&gt;
  r = r + 0.01;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Y軸を中心にフェルマーらせんを回転&lt;br /&gt;
* '''rotateY()'''を使う (https://processing.org/reference/rotateY_.html)&lt;br /&gt;
* '''size()'''に'''P3D'''を指定&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int itr = 0;  //描画の繰り返し回数&lt;br /&gt;
float scalar = 5; //拡大倍率&lt;br /&gt;
float rotation;&lt;br /&gt;
float r =0;&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(500, 500, P3D); // 3D座標を指定する&lt;br /&gt;
  background(255);  //背景を白くする&lt;br /&gt;
  rotation = (1 + sqrt(5)) / 2;&lt;br /&gt;
}&lt;br /&gt;
void draw() {&lt;br /&gt;
  translate(width / 2, height / 2);  //描画ウィンドウの中心に移動&lt;br /&gt;
  rotateY(r);&lt;br /&gt;
  fill(0);  //点を黒く塗る&lt;br /&gt;
&lt;br /&gt;
  float theta = 2 * PI * itr * rotation; //回転角&lt;br /&gt;
  PVector v = PVector.fromAngle(theta);&lt;br /&gt;
  v.mult(scalar * sqrt(itr));&lt;br /&gt;
  ellipse(v.x, v.y, scalar, scalar); //点を描画&lt;br /&gt;
   &lt;br /&gt;
  itr++;&lt;br /&gt;
  r = r + 0.01;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===文字列を画面中央に表示===&lt;br /&gt;
;ウィンドウ画面の中央にテキストを配置する方法&lt;br /&gt;
&lt;br /&gt;
文字の表示について、CENTERやwidth/2を使って、横方法は中央に配置することができます。&lt;br /&gt;
しかし、縦方向については、英語のアルファベットの場合、文字によって、高さや縦の位置が異なるので、&lt;br /&gt;
CENTERやheight/2では、うまくいきません。&lt;br /&gt;
&lt;br /&gt;
フォントはベースラインを基準に作成されています。ベースラインから上の長さはAscent、ベースラインから下の長さはDescentと言います。&lt;br /&gt;
例えば、小文字のj,p などはベースラインから下にはみ出ていますし、小文字のk,lなどは縦に長く、iは短めです。&lt;br /&gt;
テキストの高さは、Ascent+Descentになります。&lt;br /&gt;
&lt;br /&gt;
ref: https://github.com/alexheretic/ab-glyph/issues/6&lt;br /&gt;
&lt;br /&gt;
これを計算して、縦の位置を指定する必要があります。&lt;br /&gt;
例えば、以下のようにすると、ウィンドウの中央に配置できます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(400, 400);&lt;br /&gt;
  textSize(30);&lt;br /&gt;
  textAlign(CENTER,TOP);&lt;br /&gt;
  background(0);&lt;br /&gt;
}&lt;br /&gt;
void draw(){&lt;br /&gt;
  float ascent = textAscent();&lt;br /&gt;
  float descent = textDescent();&lt;br /&gt;
  float textHeight = ascent + descent;&lt;br /&gt;
  int textPosY = int(height-textHeight)/2;&lt;br /&gt;
  text(&amp;quot;pijlk,hello world&amp;quot;, width/2, textPosY);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===プログラム出力を動画にエクスポート===&lt;br /&gt;
Processingで実行したプログラムの出力を動画にするには、&lt;br /&gt;
一旦、saveFrame()関数で、コマ送りの静止画を保存して&lt;br /&gt;
その後、MovieMakerで静止画をつなげて動画にします。&lt;br /&gt;
&lt;br /&gt;
基本的には、draw()関数の最後にsaveFrame()関数を記述してプログラムを実行した後に、&lt;br /&gt;
Processingのツールメニューから、ムービーメーカーを使って、書き出せばよいです。&lt;br /&gt;
その際、コマ送りの静止画の数が多くなりすぎないように、frameRateを適度に設定するとよいでしょう。&lt;br /&gt;
なお、frameRateのデフォルトは60です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void setup(){&lt;br /&gt;
  size(500,500);&lt;br /&gt;
  frameRate(30);&lt;br /&gt;
}&lt;br /&gt;
int x = 0;&lt;br /&gt;
void draw(){&lt;br /&gt;
  if (x &amp;lt; 100) {&lt;br /&gt;
    line(x, 0, x, 100);&lt;br /&gt;
    x = x + 1;&lt;br /&gt;
  } else {&lt;br /&gt;
    noLoop();&lt;br /&gt;
  }&lt;br /&gt;
  // Saves each frame as line000001.png, line000002.png, etc.&lt;br /&gt;
  saveFrame(&amp;quot;line######.png&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== リンク ==&lt;br /&gt;
&lt;br /&gt;
http://gushwell.ifdef.jp/&lt;br /&gt;
&lt;br /&gt;
素数のグラフィック&lt;br /&gt;
http://www.datapointed.net/visualizations/math/factorization/animated-diagrams/?infinity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contents ==&lt;br /&gt;
&lt;br /&gt;
# Scalable art, Generative art, Mathematical art, Artificial Intelligence, Artificial Life, Complext sysytem&lt;br /&gt;
# openFrameworks C++ / Xcode MacOSX&lt;br /&gt;
# Logic circuit&lt;br /&gt;
# 完全情報ゲーム：チェッカー、オセロ、チェス、将棋、囲碁&lt;br /&gt;
# Cell auttomaton&lt;br /&gt;
# Conway's game of life&lt;br /&gt;
# Wire world&lt;br /&gt;
# Random walk&lt;br /&gt;
# Langton's ant&lt;br /&gt;
# Boid&lt;br /&gt;
# Box2D&lt;br /&gt;
# Fractal, Self-similar&lt;br /&gt;
# Recursive call&lt;br /&gt;
# Complex square&lt;br /&gt;
# Mandelbrot&lt;br /&gt;
# Neural network&lt;br /&gt;
# Genetic algorithm&lt;br /&gt;
# Code, Chyper, Encript&lt;br /&gt;
# Space X&lt;br /&gt;
# Robotics&lt;br /&gt;
# Expert system&lt;br /&gt;
# Fourier transform, spectrum&lt;br /&gt;
# Fibonacci number&lt;br /&gt;
# Belousov-Zhabotinsky reaction&lt;br /&gt;
# Gray-Scott model&lt;br /&gt;
#* https://mrob.com/pub/comp/xmorphia/ogl/index.html&lt;br /&gt;
#* http://pmneila.github.io/jsexp/grayscott/&lt;br /&gt;
#* https://github.com/MStrandh/gray_scott_reaction_diffusion&lt;br /&gt;
# Turing pattern&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E7%94%9F%E5%91%BD%E6%83%85%E5%A0%B1%E3%82%A2%E3%83%BC%E3%83%88%E8%AB%96</id>
		<title>生命情報アート論</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E7%94%9F%E5%91%BD%E6%83%85%E5%A0%B1%E3%82%A2%E3%83%BC%E3%83%88%E8%AB%96"/>
				<updated>2026-01-15T10:16:00Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* 共感覚 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
&lt;br /&gt;
*成績評価&lt;br /&gt;
**出席：学生証scan+[http://www.kuhalabo.net/~web/examination/mpaper/min_paper.php?subj_id=3&amp;amp;grade=2 Minutes paper]&lt;br /&gt;
**課題：セルオートマトン課題、再帰呼び出し図形課題、複素平面フラクタル課題&lt;br /&gt;
**小テスト：[http://www.kuhalabo.net/~web/examination/result_highscore.php?subj_id=3 ハイスコア]&lt;br /&gt;
&lt;br /&gt;
;授業概要及び到達目標&lt;br /&gt;
:インタラクティブアートは芸術を基盤として科学や工学を統合する新しい領域である。生物科学に関連した分野として、人工生命、ライフゲーム、フラクタル、オートマトン、遺伝的アルゴリズム、ニューラルネットワークなど応用範囲の広いものが数多く存在する。&lt;br /&gt;
そういった生物に見られる特徴をアートに応用したジェネラティブアートの作品をC++のプログラミングを使用して、実際に作成してみる。&lt;br /&gt;
&lt;br /&gt;
本講義の目標は以下の通り。&lt;br /&gt;
&lt;br /&gt;
# 生物の特徴と生物的なシステムについて理解する。&lt;br /&gt;
# 複雑系システムについて理解し、応用例を作成できる。&lt;br /&gt;
# openFrameworksを使って作品のプログラミングができる。&lt;br /&gt;
&lt;br /&gt;
== アナウンス ==&lt;br /&gt;
&lt;br /&gt;
開発環境として[[openFrameworks for Visual studio]]を使用します。&lt;br /&gt;
&lt;br /&gt;
テキストや開発環境については、以下を参照してください。&lt;br /&gt;
* http://www.kuhalabo.net/kxoops/modules/d3blog/details.php?bid=141&lt;br /&gt;
&lt;br /&gt;
一年生の時にメディアプログラミング演習I程度のプログラミングスキルがあるものとして、授業を進めます。&lt;br /&gt;
もし、プログラミングに不安があるなら、上記テキストを使って、自分で予習や自習をしてください。&lt;br /&gt;
&lt;br /&gt;
== 予定 ==&lt;br /&gt;
;2014年度&lt;br /&gt;
&lt;br /&gt;
# 9/30(火) ガイダンス, 生物と情報とアート，openFrameworksプログラミング演習&lt;br /&gt;
# 10/7(火) openFrameworks C++プログラミング&lt;br /&gt;
# 10/14(火) 幾何学図形の描画&lt;br /&gt;
# 10/21(火) ランダムウォーク&lt;br /&gt;
# 10/28(火) セルオートマトン&lt;br /&gt;
# 11/4(火) セルオートマトン&lt;br /&gt;
# 11/11(火) セルオートマトン&lt;br /&gt;
# 11/18(火) セルオートマトン&lt;br /&gt;
# 11/25(火) セルオートマトン&lt;br /&gt;
# 12/2(火) フラクタルと再帰呼び出し&lt;br /&gt;
# 12/9(火) 課題制作日&lt;br /&gt;
# 12/16(火) フラクタルと再帰呼び出し&lt;br /&gt;
# 1/6(火) 予備演習日（出席はとりません）&lt;br /&gt;
# 1/20(火) 遺伝的アルゴリズム&lt;br /&gt;
# 1/28(火) 小テスト&lt;br /&gt;
&lt;br /&gt;
== 生物と情報とアート ==&lt;br /&gt;
* 生物とは? 生物の特徴とは？&lt;br /&gt;
** 例：小石と貝殻&lt;br /&gt;
** * [http://blossom.media.t-kougei.ac.jp/~kuha/easybbs/easy_bbs4klb2.php 簡単BBS]に「生物と無生物の違いは何か？」説明してみよう。&lt;br /&gt;
* ゲノムのDNAマップ [http://www.ncbi.nlm.nih.gov/mapview/ NCBI Map Viewer]&lt;br /&gt;
* [http://www.kuhalabo.net/kxoops/modules/d3blog/details.php?bid=5 ヒト一人を再生するのに必要な情報量は？]&lt;br /&gt;
&lt;br /&gt;
== メモ　==&lt;br /&gt;
Visual Studioのショートカット&lt;br /&gt;
&lt;br /&gt;
* Ctrl-K Ctrl-C コメントアウト&lt;br /&gt;
* Ctrl-K Ctrl-U コメントアウト解除&lt;br /&gt;
* Ctrl-K Ctrl-F インデントをそろえる&lt;br /&gt;
&lt;br /&gt;
[http://yoppa.org/ クリエイティブ・コーダー]&lt;br /&gt;
&lt;br /&gt;
== 複雑系 ==&lt;br /&gt;
=== セルオートマトン ===&lt;br /&gt;
&lt;br /&gt;
*配布資料[http://www.kuhalabo.net/~kuha/tutorial0/bioart/cellautomaton2007.pdf PDF]&lt;br /&gt;
*[http://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%83%AB%E3%83%94%E3%83%B3%E3%82%B9%E3%82%AD%E3%83%BC%E3%81%AE%E3%82%AE%E3%83%A3%E3%82%B9%E3%82%B1%E3%83%83%E3%83%88 シェルピンスキーのガスケット]&lt;br /&gt;
** [http://falconnet.peddie.org/students/2007/nburoojy/projects/cellular/ 256種類の１次元セルオートマトンの画像] / &lt;br /&gt;
*[http://ja.wikipedia.org/wiki/%E3%82%BB%E3%83%AB%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3 セルオートマトン]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Elementary_cellular_automaton Elementary cellular automaton]&lt;br /&gt;
&lt;br /&gt;
=== ライフゲーム ===&lt;br /&gt;
[http://www.kuhalabo.net/~kuha/tutorial0/bioart/Lifegame.exe ライフゲームの例] / &lt;br /&gt;
[http://homepage3.nifty.com/izushi/LifeGame/ ライフゲーム入門] / &lt;br /&gt;
[http://www.kuhalabo.net/~kuha/tutorial0/bioart/cagallary/ セルオートマトン・ギャラリー] /&lt;br /&gt;
&lt;br /&gt;
;セルオートマトン音楽&lt;br /&gt;
[http://tones.wolfram.com/generate/ WolframTones]/ &lt;br /&gt;
[http://tamw.atari-users.net/camus.htm CAMUS]/ &lt;br /&gt;
[http://www.glitchds.com/ Glitch DS]/ &lt;br /&gt;
[http://www.kuhalabo.net/lifegorch/ Life Game Orchestra] / &lt;br /&gt;
&lt;br /&gt;
;ギャラリー&lt;br /&gt;
[http://www.collidoscope.com/modernca/ Modern Cellular Automata]/ &lt;br /&gt;
[http://prenzl.sourceforge.net/gallery/category.php CArt gallery]/ &lt;br /&gt;
[http://www.upl.cs.wisc.edu/~oblio/gnarly.html Cellular Automata Art]/ &lt;br /&gt;
[http://akinao.at.infoseek.co.jp/ascii/index.html ASCII Art Cell Automaton]/ &lt;br /&gt;
&lt;br /&gt;
;参考&lt;br /&gt;
[http://ja.wikipedia.org/wiki/%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AF%E3%83%BC%E3%83%AB%E3%83%89 ワイヤワールド] /&lt;br /&gt;
&lt;br /&gt;
=== 人工生命 ===&lt;br /&gt;
[http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%82%B0%E3%83%88%E3%83%B3%E3%81%AE%E3%82%A2%E3%83%AA ラングトンのアリ] / &lt;br /&gt;
[http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%82%B0%E3%83%88%E3%83%B3%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%97 ラングトンのループ] /&lt;br /&gt;
[http://necsi.org/postdocs/sayama/sdsr/java/ 自己増殖ループ] / &lt;br /&gt;
[http://www.red3d.com/cwr/boids/ Reynolds Boid] /&lt;br /&gt;
&lt;br /&gt;
http://www.local-guru.net/blog/2010/8/19/openframeworks-boid-demo&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/tado/6603347&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Birds Algorhythm Craig Reynolds&lt;br /&gt;
http://processing.org/examples/flocking.html&lt;br /&gt;
&lt;br /&gt;
== [[C Sharp Programming]] ==&lt;br /&gt;
&lt;br /&gt;
== フラクタル ==&lt;br /&gt;
古代ギリシャからあるユークリッド幾何学と20世紀のフラクタル幾何学の比較&lt;br /&gt;
&lt;br /&gt;
;考察&lt;br /&gt;
:古代エジプト人は3:4:5の辺を持つ三角形で直角が得られることを知っていた．ピラミッドなどの巨大建造物．&lt;br /&gt;
:三平方の定理を発見したピタゴラスはどこがすごいか？&lt;br /&gt;
&lt;br /&gt;
[http://www.gaia.h.kyoto-u.ac.jp/~fractal/ フラクタル日除け]&lt;br /&gt;
&lt;br /&gt;
== 自己相似系 ==&lt;br /&gt;
=== 再帰的呼出しによる樹木の描画 ===&lt;br /&gt;
*'''再帰的( recursive )呼び出し'''とは，サブルーチンや関数が，自分自身を呼び出すことをいう。樹木は，枝の１つを取り出して拡大しても，元の枝と同じ形（相似形）をしている。これは，同じサブルーチンで枝を描画しているからである。&lt;br /&gt;
&lt;br /&gt;
*再帰的呼出し的なCollaborate Flash Animation：[http://www.zoomquilt.org/ zoomquilt] ([http://www.media.t-kougei.ac.jp/~kuha/tutorial0/bioart/zoomquilt.swf swf])&lt;br /&gt;
*例：実行ファイル，ソース，Taneクラス &lt;br /&gt;
&lt;br /&gt;
=== C#による実装 ===&lt;br /&gt;
==== 新しいクラスの定義 ====&lt;br /&gt;
*「プロジェクト」メニューから「クラスの追加」で新しいクラス名を入力する。クラスの定義の中にメソッドを記述する。&lt;br /&gt;
* 注意&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
をTane.csの冒頭に追加&lt;br /&gt;
&lt;br /&gt;
==== 樹木の描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Bintree.jpg]]&lt;br /&gt;
[[ファイル:Bintree2.JPG]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
線分(x1,y1)-(x2,y2)が与えられたら、(x2,y2)の先端に(x3,y3), (x4,y4)を取り、線分(x2,y2)-(x3,y3)と線分(x2,y2)-(x4,y4)を描画する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    class Tane&lt;br /&gt;
    {&lt;br /&gt;
        public void Eda(int n, double x1, double y1, double x2, double y2, double angle, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4;&lt;br /&gt;
            double s = Math.Sin(angle * Math.PI / 180.0);&lt;br /&gt;
            double c = Math.Cos(angle * Math.PI / 180.0);&lt;br /&gt;
            double dx = 0.7 * (x2 - x1);&lt;br /&gt;
            double dy = 0.7 * (y2 - y1);&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = x2 + dx * c - dy * s;&lt;br /&gt;
                y3 = y2 + dx * s + dy * c;&lt;br /&gt;
                x4 = x2 + dx * c + dy * s;&lt;br /&gt;
                y4 = y2 - dx * s + dy * c;&lt;br /&gt;
                // 枝を描画する&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                g.DrawLine(pen, (float)x2, (float)y2, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x2, (float)y2, (float)x4, (float)y4);&lt;br /&gt;
                //子の再起呼び出し&lt;br /&gt;
                Eda(n - 1, x2, y2, x3, y3, angle, g, pen);&lt;br /&gt;
                Eda(n - 1, x2, y2, x4, y4, angle, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;樹木描画ボタンクリックの中身&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 10;  //枝の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width / 2; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width / 2; //開始位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.8; //開始位置 y座標&lt;br /&gt;
            double angle = 30.0; //子供の枝の角度の差分&lt;br /&gt;
            tane.Eda(n, x0, y0, x1, y1, angle, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== コッホ図形の描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Koch.jpg]]&lt;br /&gt;
[[ファイル:Koch2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Koch(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4, x5, y5;&lt;br /&gt;
            double s = Math.Sin(Math.PI / 3.0);&lt;br /&gt;
            double c = Math.Cos(Math.PI / 3.0);&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = (2 * x1 + x2) / 3.0;&lt;br /&gt;
                y3 = (2 * y1 + y2) / 3.0;&lt;br /&gt;
                x4 = (x1 + 2 * x2) / 3.0;&lt;br /&gt;
                y4 = (y1 + 2 * y2) / 3.0;&lt;br /&gt;
                x5 = x3 + (x4 - x3) * c + (y4 - y3) * s;&lt;br /&gt;
                y5 = y3 - (x4 - x3) * s + (y4 - y3) * c;&lt;br /&gt;
                // ジェネレータを描画する&lt;br /&gt;
                pen.Color = Color.Black;&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x4, (float)y4);&lt;br /&gt;
                pen.Color = Color.Green;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x5, (float)y5);&lt;br /&gt;
                g.DrawLine(pen, (float)x5, (float)y5, (float)x4, (float)y4);&lt;br /&gt;
                g.DrawLine(pen, (float)x4, (float)y4, (float)x2, (float)y2);&lt;br /&gt;
                // 子の再起呼び出し&lt;br /&gt;
                Koch(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Koch(n - 1, x3, y3, x5, y5, g, pen);&lt;br /&gt;
                Koch(n - 1, x5, y5, x4, y4, g, pen);&lt;br /&gt;
                Koch(n - 1, x4, y4, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;コッホ図形描画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            // マウス位置へ直線を描画する&lt;br /&gt;
            int n = 4;  //子の世代数&lt;br /&gt;
            double x0 = 0; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.6 ; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.6; //終了位置 y座標&lt;br /&gt;
            tane.Koch(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ドラゴン図形の描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Dragon.jpg]]&lt;br /&gt;
[[ファイル:Dragon2.jpg]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Dragon(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4, x5, y5;&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = 0.5 * ( x1 + x2);&lt;br /&gt;
                y3 = 0.5 * ( y1 + y2);&lt;br /&gt;
                x4 = 0.5 * (x1 + x3 - y1 + y3);&lt;br /&gt;
                y4 = 0.5 * (x1 - x3 + y1 + y3);&lt;br /&gt;
                x5 = 0.5 * (x2 + x3 - y2 + y3);&lt;br /&gt;
                y5 = 0.5 * (x2 - x3 + y2 + y3);&lt;br /&gt;
&lt;br /&gt;
                // 枝を描画する&lt;br /&gt;
                pen.Color = Color.Black;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x2, (float)y2);&lt;br /&gt;
                pen.Color = Color.Green;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x4, (float)y4);&lt;br /&gt;
                g.DrawLine(pen, (float)x4, (float)y4, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x5, (float)y5);&lt;br /&gt;
                g.DrawLine(pen, (float)x5, (float)y5, (float)x2, (float)y2);&lt;br /&gt;
                Dragon(n - 1, x1, y1, x4, y4, g, pen);&lt;br /&gt;
                Dragon(n - 1, x4, y4, x3, y3, g, pen);&lt;br /&gt;
                Dragon(n - 1, x3, y3, x5, y5, g, pen);&lt;br /&gt;
                Dragon(n - 1, x5, y5, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;ドラゴン図形描画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;  //子の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width * 0.1; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.5; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width * 0.9; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.5; //終了位置 y座標&lt;br /&gt;
            tane.Dragon(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== シダ葉の描画 ====&lt;br /&gt;
;ドラゴン図形の変化形&lt;br /&gt;
* ドラゴン図形で使用した(x1,y1), (x2,y2), (x3,y3), (x4,y4), (x5,y5)を使う&lt;br /&gt;
* 直線(x1,y1)-(x2,y2), 直線(x1,y1)-(x4,y4),  直線(x3,y3)-(x5,y5)を基本図形とする。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Sida2.JPG]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Fern(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4, x5, y5;&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = ( x1 + x2 ) / 2.0;&lt;br /&gt;
                y3 = ( y1 + y2 ) / 2.0;&lt;br /&gt;
                x4 = ( x1 + x3 - y1 + y3) / 2.0;&lt;br /&gt;
                y4 = ( x1 - x3 + y1 + y3) / 2.0;&lt;br /&gt;
                x5 = ( x2 + x3 - y2 + y3) / 2.0;&lt;br /&gt;
                y5 = ( x2 - x3 + y2 + y3) / 2.0;&lt;br /&gt;
                // 枝を描画する&lt;br /&gt;
                pen.Color = Color.Green;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x5, (float)y5);&lt;br /&gt;
                Fern(n - 1, x1, y1, x4, y4, g, pen);&lt;br /&gt;
                Fern(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Fern(n - 1, x3, y3, x2, y2, g, pen);&lt;br /&gt;
                Fern(n - 1, x3, y3, x5, y5, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;シダ葉描画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;  //子の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width * 0.1; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.5; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width * 0.9; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.5; //終了位置 y座標&lt;br /&gt;
            tane.Fern(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Cカーブの描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Ccurve.jpg]]&lt;br /&gt;
[[ファイル:Ccurve2.jpg]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Ccurve(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3;&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = 0.5 * (x1 + x2 - y1 + y2);&lt;br /&gt;
                y3 = 0.5 * (x1 - x2 + y1 + y2);&lt;br /&gt;
                // 枝を描画する&lt;br /&gt;
                pen.Color = Color.Black;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                pen.Color = Color.Green;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x2, (float)y2);&lt;br /&gt;
                Ccurve(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Ccurve(n - 1, x3, y3, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Cカーブ画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 12;  //子の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width * 0.25; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.75; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width * 0.75; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.75; //終了位置 y座標&lt;br /&gt;
            tane.Ccurve(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 内分点と回転によるカスタムジェネレータの描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:gene01.JPG]]&lt;br /&gt;
[[ファイル:gene012.JPG]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Gene01(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4;&lt;br /&gt;
            double p = 2.0;&lt;br /&gt;
            double q = 3.0;&lt;br /&gt;
            double th = -30.0;&lt;br /&gt;
            double s = Math.Sin(th * Math.PI / 180.0);&lt;br /&gt;
            double c = Math.Cos(th * Math.PI / 180.0);&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = (q * x1 + p * x2) / (p + q);&lt;br /&gt;
                y3 = (q * y1 + p * y2) / (p + q);&lt;br /&gt;
                x4 = x1 + (x3 - x1) * c - (y3 - y1) * s;&lt;br /&gt;
                y4 = y1 + (x3 - x1) * s + (y3 - y1) * c;&lt;br /&gt;
                pen.Color = Color.Yellow;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x4, (float)y4);&lt;br /&gt;
                Gene01(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Gene01(n - 1, x1, y1, x4, y4, g, pen);&lt;br /&gt;
                Gene01(n - 1, x3, y3, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;カスタムジェネレータ描画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;  //子の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width * 0.1; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.5; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width * 0.9; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.5; //終了位置 y座標&lt;br /&gt;
            tane.Gene01(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;マウスドラッグで始点と終点を決めて描く&lt;br /&gt;
*プロパティウィンドウにイベント(稲妻のアイコン)のリストを表示させ、MouseDownイベントをダブルクリックすると、MouseDownのメソッドが自動生成されます。&lt;br /&gt;
*label1,label2に始点の座標を、label3, label4に終点の座標を入れる&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            label1.Text = e.X.ToString();&lt;br /&gt;
            label2.Text = e.Y.ToString();&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;&lt;br /&gt;
            double x0 = double.Parse(label1.Text);&lt;br /&gt;
            double y0 = double.Parse(label2.Text);&lt;br /&gt;
            double x1 = double.Parse(label3.Text);&lt;br /&gt;
            double y1 = double.Parse(label4.Text);&lt;br /&gt;
&lt;br /&gt;
            tane.Gene01(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            label3.Text = e.X.ToString();&lt;br /&gt;
            label4.Text = e.Y.ToString();&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
p,q,thをクラスのメンバー変数にして、外部からランダムに与える。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    class Tane&lt;br /&gt;
    {&lt;br /&gt;
        public double p { get; set; }&lt;br /&gt;
        public double q { get; set; }&lt;br /&gt;
        public double th { get; set; }&lt;br /&gt;
&lt;br /&gt;
        public void Gene01(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4;&lt;br /&gt;
            double s = Math.Sin(th * Math.PI / 180.0);&lt;br /&gt;
            double c = Math.Cos(th * Math.PI / 180.0);&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = (q * x1 + p * x2) / (p + q);&lt;br /&gt;
                y3 = (q * y1 + p * y2) / (p + q);&lt;br /&gt;
                x4 = x1 + (x3 - x1) * c - (y3 - y1) * s;&lt;br /&gt;
                y4 = y1 + (x3 - x1) * s + (y3 - y1) * c;&lt;br /&gt;
                pen.Color = Color.Yellow;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x4, (float)y4);&lt;br /&gt;
                Gene01(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Gene01(n - 1, x1, y1, x4, y4, g, pen);&lt;br /&gt;
                Gene01(n - 1, x3, y3, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
            Random rnd = new Random();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;&lt;br /&gt;
            double x0 = double.Parse(label1.Text);&lt;br /&gt;
            double y0 = double.Parse(label2.Text);&lt;br /&gt;
            double x1 = double.Parse(label3.Text);&lt;br /&gt;
            double y1 = double.Parse(label4.Text);&lt;br /&gt;
&lt;br /&gt;
            tane.p = rnd.Next(2, 6);&lt;br /&gt;
            tane.q = rnd.Next(3, 7);&lt;br /&gt;
            tane.th = rnd.Next(10, 90);&lt;br /&gt;
&lt;br /&gt;
            tane.Gene01(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== タイマーを使用した樹木のアニメーション ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void button3_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            timer1.Enabled = true;&lt;br /&gt;
            timer1.Start();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button4_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            timer1.Stop();&lt;br /&gt;
            timer1.Enabled = false;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        public int cnt; //タイマー用カウンタ&lt;br /&gt;
        private void timer1_Tick(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 1);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            g.Clear(Color.Black);&lt;br /&gt;
&lt;br /&gt;
            cnt++;  //タイマー用カウンタのカウントアップ&lt;br /&gt;
            int n = 10;  //枝の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width / 2; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width / 2; //開始位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.9 - cnt * 2; //開始位置 y座標&lt;br /&gt;
            double angle = 30.0; //子供の枝の角度の変化の差分&lt;br /&gt;
            double a_rate = angle + cnt * 2;&lt;br /&gt;
            tane.Eda(n, x0, y0, x1, y1, a_rate, g, pen);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 複素平面フラクタル ==&lt;br /&gt;
*[http://blossom.media.t-kougei.ac.jp/~kuha/tutorial0/bioart/9_complex.pdf 配布資料PDF]&lt;br /&gt;
*[http://blossom.media.t-kougei.ac.jp/~kuha/tutorial0/bioart/mandelv3.exe 複複素平面フラクタル図形描画ソフトウェア for Windows]&lt;br /&gt;
**注）comdlg32.ocxがない場合は，[http://www.microsoft.com/downloads/ja-jp/details.aspx?displaylang=ja&amp;amp;FamilyID=7B9BA261-7A9C-43E7-9117-F673077FFB3C ここ]からRuntimeファイル群をダウンロードしてください。&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=0fKBhvDjuy0 Powers of Ten]&lt;br /&gt;
&lt;br /&gt;
=== C#の座標変換 ===&lt;br /&gt;
;座標原点&lt;br /&gt;
原点を移動するには、TranslateTransformメソッドを使う。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          g.TranslateTransform(x1,y1); //座標原点を(x1,y1)に移動&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;座標の回転&lt;br /&gt;
座標軸をth度(degree)だけ回転するには、RotateTransformメソッドを使う。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
　          g.RotateTransform(th);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;座標軸のスケール、方向&lt;br /&gt;
座標スケールを変換するには、ScaleTransformメソッドを使う。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            g.ScaleTransform(scx,scy);  //X軸をscx倍、Y軸をscy倍する&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
X軸は右、Y軸は下が正方向なので、座標軸方向を反転するには、次のとおり。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
　 　　　　　g.ScaleTransform(1,-1);   //Y軸方向の反転&lt;br /&gt;
　 　　　　　g.ScaleTransform(-1,1);  //X軸方向の反転&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 複素平面フラクタルの描画 ===&lt;br /&gt;
;自己平方の描画プログラム&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2); //原点を中央に移動&lt;br /&gt;
            g.ScaleTransform(1, -1); //Y軸の向きを反転&lt;br /&gt;
            Pen pen = new Pen(Color.White);&lt;br /&gt;
&lt;br /&gt;
            int Xmax = pictureBox1.Width / 2;&lt;br /&gt;
            int Xmin = -pictureBox1.Width / 2;&lt;br /&gt;
            int Ymax = pictureBox1.Height / 2;&lt;br /&gt;
            int Ymin = -pictureBox1.Height / 2;&lt;br /&gt;
            double Rmax = 0.5;&lt;br /&gt;
            double Rmin = -0.5;&lt;br /&gt;
            double Imax = 0.5;&lt;br /&gt;
            double Imin = -0.5;&lt;br /&gt;
            double Zr, newZr;&lt;br /&gt;
            double Zi, newZi;&lt;br /&gt;
            double Ar = -0.2;&lt;br /&gt;
            double Ai = 0.675;&lt;br /&gt;
            int Nmax = 100;&lt;br /&gt;
            int Rstep = 1; // 何ピクセルごとに計算するか&lt;br /&gt;
            int Istep = 1;&lt;br /&gt;
&lt;br /&gt;
            for (int x = Xmin; x &amp;lt; Xmax; x = x + Rstep)&lt;br /&gt;
            {&lt;br /&gt;
                for (int y = Ymin; y &amp;lt; Ymax; y = y + Istep)&lt;br /&gt;
                {&lt;br /&gt;
                    Zr = ( x - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Zの座標に変換&lt;br /&gt;
                    Zi = ( y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
                    int n = 0;&lt;br /&gt;
                    while ( Zr * Zr + Zi * Zi &amp;lt; 4 &amp;amp; n &amp;lt; Nmax )&lt;br /&gt;
                    {&lt;br /&gt;
                        newZr = Zr * Zr - Zi * Zi + Ar; // f(z) = X^2 * Aの実数部&lt;br /&gt;
                        newZi = 2 * Zr * Zi + Ai; // f(z) = X^2 * Aの虚数部&lt;br /&gt;
                        Zr = newZr;&lt;br /&gt;
                        Zi = newZi;&lt;br /&gt;
                        n++;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        pen.Color = Color.FromArgb(255, n * 255 / Nmax, 0, 0);//nの数に応じて色分ける&lt;br /&gt;
                        g.DrawRectangle(pen, x, y, 1, 1);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;マンデルブロー集合の描画プログラム&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2); //原点を中央に移動&lt;br /&gt;
            g.ScaleTransform(1, -1); //Y軸の向きを反転&lt;br /&gt;
            Pen pen = new Pen(Color.White);&lt;br /&gt;
&lt;br /&gt;
            int Xmax = pictureBox1.Width / 2;&lt;br /&gt;
            int Xmin = -pictureBox1.Width / 2;&lt;br /&gt;
            int Ymax = pictureBox1.Height / 2;&lt;br /&gt;
            int Ymin = -pictureBox1.Height / 2;&lt;br /&gt;
            double Rmax = 1.5;&lt;br /&gt;
            double Rmin = -1.5;&lt;br /&gt;
            double Imax = 1.5;&lt;br /&gt;
            double Imin = -1.5;&lt;br /&gt;
            double Zr, newZr;&lt;br /&gt;
            double Zi, newZi;&lt;br /&gt;
            double Cr;&lt;br /&gt;
            double Ci;&lt;br /&gt;
            int Nmax = 50;&lt;br /&gt;
            int Rstep = 1; // 何ピクセルごとに計算するか&lt;br /&gt;
            int Istep = 1;&lt;br /&gt;
&lt;br /&gt;
            for (int x = Xmin; x &amp;lt; Xmax; x = x + Rstep)&lt;br /&gt;
            {&lt;br /&gt;
                for (int y = Ymin; y &amp;lt; Ymax; y = y + Istep)&lt;br /&gt;
                {&lt;br /&gt;
                    Cr = ( x - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Cの座標に変換&lt;br /&gt;
                    Ci = ( y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
                    int n = 0;&lt;br /&gt;
                    Zr = 0.0;&lt;br /&gt;
                    Zi = 0.0;&lt;br /&gt;
                    while (Zr * Zr + Zi * Zi &amp;lt; 4 &amp;amp; n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        newZr = Zr * Zr - Zi * Zi + Cr; // f(z) = X^2 * Cの実数部&lt;br /&gt;
                        newZi = 2 * Zr * Zi + Ci; // f(z) = X^2 * Cの虚数部&lt;br /&gt;
                        Zr = newZr;&lt;br /&gt;
                        Zi = newZi;&lt;br /&gt;
                        n++;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        pen.Color = Color.FromArgb(255, 0, n * 255 / Nmax, 0);//nの数に応じて色分ける&lt;br /&gt;
                        g.DrawRectangle(pen, x, y, 1, 1);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Julia集合&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2); //原点を中央に移動&lt;br /&gt;
            g.ScaleTransform(1, -1); //Y軸の向きを反転&lt;br /&gt;
            Pen pen = new Pen(Color.White);&lt;br /&gt;
&lt;br /&gt;
            int Xmax = pictureBox1.Width / 2;&lt;br /&gt;
            int Xmin = -pictureBox1.Width / 2;&lt;br /&gt;
            int Ymax = pictureBox1.Height / 2;&lt;br /&gt;
            int Ymin = -pictureBox1.Height / 2;&lt;br /&gt;
            double Rmax = 1.5;&lt;br /&gt;
            double Rmin = -1.5;&lt;br /&gt;
            double Imax = 1.5;&lt;br /&gt;
            double Imin = -1.5;&lt;br /&gt;
            double Xr, Xr2, XrXi23, newXr;&lt;br /&gt;
            double Xi, Xi2, newXi;&lt;br /&gt;
            double Dr;&lt;br /&gt;
            double Di;&lt;br /&gt;
            int Nmax = 50;&lt;br /&gt;
            int Rstep = 1; // 何ピクセルごとに計算するか&lt;br /&gt;
            int Istep = 1;&lt;br /&gt;
&lt;br /&gt;
            for (int x = Xmin; x &amp;lt; Xmax; x = x + Rstep)&lt;br /&gt;
            {&lt;br /&gt;
                for (int y = Ymin; y &amp;lt; Ymax; y = y + Istep)&lt;br /&gt;
                {&lt;br /&gt;
                    Xr = ( x - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Cの座標に変換&lt;br /&gt;
                    Xi = ( y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
                    int n = 0;&lt;br /&gt;
                    Dr = 1.0;&lt;br /&gt;
                    Di = 1.0;&lt;br /&gt;
                    while (Dr + Di &amp;gt; 0.001 &amp;amp; n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        Xr2 = Xr * Xr;&lt;br /&gt;
                        Xi2 = Xi * Xi;&lt;br /&gt;
                        XrXi23 = (Xr2 + Xi2) * (Xr2 + Xi2) / 3;&lt;br /&gt;
                        newXr = Xr * 2 / 3 + (Xr2 - Xi2) / XrXi23; // f(z) = X^2 * Cの実数部&lt;br /&gt;
                        newXi = Xi * 2 / 3 - 2 * Xr * Xi / XrXi23; // f(z) = X^2 * Cの虚数部&lt;br /&gt;
                        Dr = Math.Abs(newXr - Xr);&lt;br /&gt;
                        Di = Math.Abs(newXi - Xi);&lt;br /&gt;
                        Xr = newXr;&lt;br /&gt;
                        Xi = newXi;&lt;br /&gt;
                        n++;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        int rr = n * 255 / Nmax;&lt;br /&gt;
                        int gg = 0;&lt;br /&gt;
                        int bb = 0;&lt;br /&gt;
                        pen.Color = Color.FromArgb(255, rr, gg, bb);//nの数に応じて色分ける&lt;br /&gt;
                        g.DrawRectangle(pen, x, y, 1, 1);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 配色の工夫 ===&lt;br /&gt;
&lt;br /&gt;
個々の色の差をハッキリさせる。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    int rr = (n % 13 + 1) * 255 / 14;&lt;br /&gt;
    int gg = (n % 11 + 1) * 255 / 12;&lt;br /&gt;
    int bb = (n % 7 + 1) * 255 / 8;&lt;br /&gt;
    pen.Color = Color.FromArgb(255, rr, gg, bb);&lt;br /&gt;
    g.DrawRectangle(pen, x, y, Rstep, Istep);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ピクセルの目を粗くした時に、矩形の中身を塗りつぶす。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    pen.Color = Color.FromArgb(255, rr, gg, bb);&lt;br /&gt;
    brush.Color = Color.FromArgb(255, rr, gg, bb);&lt;br /&gt;
    g.DrawRectangle(pen, x, y, Rstep, Istep);&lt;br /&gt;
    g.FillRectangle(brush, x, y, Rstep, Istep);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ar, Ai, Rstep, Istepなどをテキストボックスから入力する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Ar = double.Parse(textBox1.Text);&lt;br /&gt;
            Ai = double.Parse(textBox2.Text);&lt;br /&gt;
&lt;br /&gt;
            Rstep = int.Parse(textBox3.Text);&lt;br /&gt;
            Istep = Rstep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== いろいろカスタマイズ ===&lt;br /&gt;
&lt;br /&gt;
*複素平面の座標のスケールをラベルに表示する。&lt;br /&gt;
*マウスドラッグで、新しく描画する範囲を選択する。&lt;br /&gt;
*選択領域を正方形にするかどうかを、チェックボックスで指定する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        //　グローバルに宣言&lt;br /&gt;
        Point MD = new Point();//マウスダウンの位置&lt;br /&gt;
        Point MU = new Point(); //マウスアップの位置&lt;br /&gt;
&lt;br /&gt;
        bool view = false;//選択領域を描画するかどうかの判定&lt;br /&gt;
        bool view2 = false;&lt;br /&gt;
        Graphics g;&lt;br /&gt;
        int Xmax;&lt;br /&gt;
        int Xmin;&lt;br /&gt;
        int Ymax;&lt;br /&gt;
        int Ymin;&lt;br /&gt;
&lt;br /&gt;
        double Rmax;&lt;br /&gt;
        double Rmin;&lt;br /&gt;
        double Imax;&lt;br /&gt;
        double Imin;&lt;br /&gt;
&lt;br /&gt;
        double Rmax2;//マウスドラッグで指定した新しい範囲&lt;br /&gt;
        double Rmin2;&lt;br /&gt;
        double Imax2;&lt;br /&gt;
        double Imin2;&lt;br /&gt;
&lt;br /&gt;
        public Form1()&lt;br /&gt;
        {&lt;br /&gt;
            InitializeComponent();&lt;br /&gt;
            g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2); //原点を中央に移動&lt;br /&gt;
            g.ScaleTransform(1, -1); //Y軸の向きを反転&lt;br /&gt;
            view2 = true;&lt;br /&gt;
&lt;br /&gt;
            Xmax = pictureBox1.Width / 2;&lt;br /&gt;
            Xmin = -pictureBox1.Width / 2;&lt;br /&gt;
            Ymax = pictureBox1.Height / 2;&lt;br /&gt;
            Ymin = -pictureBox1.Height / 2;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = 0.5;&lt;br /&gt;
            Rmin2 = -0.5;&lt;br /&gt;
            Imax2 = 0.5;&lt;br /&gt;
            Imin2 = -0.5;&lt;br /&gt;
            Rmax = Rmax2;&lt;br /&gt;
            Rmin = Rmin2;&lt;br /&gt;
            Imax = Imax2;&lt;br /&gt;
            Imin = Imin2;&lt;br /&gt;
&lt;br /&gt;
            label1.Text = null;&lt;br /&gt;
            label2.Text = null;&lt;br /&gt;
            label3.Text = null;&lt;br /&gt;
            label4.Text = null;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button1_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Pen pen = new Pen(Color.White);&lt;br /&gt;
            SolidBrush brush = new SolidBrush(Color.FromArgb(90, 200, 200, 200));&lt;br /&gt;
&lt;br /&gt;
            g.Clear(Color.Black); //描画領域をクリア（黒で塗りつぶす）&lt;br /&gt;
&lt;br /&gt;
            Rmax = Rmax2;&lt;br /&gt;
            Rmin = Rmin2;&lt;br /&gt;
            Imax = Imax2;&lt;br /&gt;
            Imin = Imin2;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
&lt;br /&gt;
            label5.Refresh();&lt;br /&gt;
            label6.Refresh();&lt;br /&gt;
            label7.Refresh();&lt;br /&gt;
            label8.Refresh();&lt;br /&gt;
            view2 = true;&lt;br /&gt;
&lt;br /&gt;
            double Zr, newZr;&lt;br /&gt;
            double Zi, newZi;&lt;br /&gt;
            double Ar = -0.2;&lt;br /&gt;
            double Ai = 0.675;&lt;br /&gt;
//            double Ar = -0.3;&lt;br /&gt;
//            double Ai = 0.63;&lt;br /&gt;
            Ar = double.Parse(textBox1.Text);//テキストボックスから値を取得&lt;br /&gt;
            Ai = double.Parse(textBox2.Text);&lt;br /&gt;
&lt;br /&gt;
            int Nmax = 500;&lt;br /&gt;
            int Rstep = 3; // 何ピクセルごとに計算するか&lt;br /&gt;
            int Istep = 3;&lt;br /&gt;
&lt;br /&gt;
            Rstep = int.Parse(textBox3.Text);&lt;br /&gt;
            Istep = Rstep;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            for (int x = Xmin; x &amp;lt; Xmax; x = x + Rstep)&lt;br /&gt;
            {&lt;br /&gt;
                for (int y = Ymin; y &amp;lt; Ymax; y = y + Istep)&lt;br /&gt;
                {&lt;br /&gt;
                    Zr = ( x - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Zの座標に変換&lt;br /&gt;
                    Zi = ( y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
                    int n = 0;&lt;br /&gt;
                    while ( Zr * Zr + Zi * Zi &amp;lt; 4 &amp;amp; n &amp;lt; Nmax )&lt;br /&gt;
                    {&lt;br /&gt;
                        newZr = Zr * Zr - Zi * Zi + Ar; // f(z) = X^2 * Aの実数部&lt;br /&gt;
                        newZi = 2 * Zr * Zi + Ai; // f(z) = X^2 * Aの虚数部&lt;br /&gt;
                        Zr = newZr;&lt;br /&gt;
                        Zi = newZi;&lt;br /&gt;
                        n++;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        int dr = 17;&lt;br /&gt;
                        int rr = (n % dr + 1) * 255 / (dr + 1);&lt;br /&gt;
                        int gg = (n % 11 + 1) * 255 / 12;&lt;br /&gt;
                        int bb = (n % 7 + 1) * 255 / 8;&lt;br /&gt;
                        pen.Color = Color.FromArgb(255, rr, gg, 255 - bb);//nの数に応じて色分ける&lt;br /&gt;
                        brush.Color = Color.FromArgb(255, rr, gg, 255 - bb);//nの数に応じて色分ける&lt;br /&gt;
                        g.DrawRectangle(pen, x, y, Rstep, Istep);&lt;br /&gt;
                        g.FillRectangle(brush, x, y, Rstep, Istep);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button2_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.Clear(Color.Black); //描画領域をクリア（黒で塗りつぶす）&lt;br /&gt;
&lt;br /&gt;
            label1.Text = null;&lt;br /&gt;
            label2.Text = null;&lt;br /&gt;
            label3.Text = null;&lt;br /&gt;
            label4.Text = null;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
&lt;br /&gt;
            view2 = true;&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //　以下、マウスイベントによって選択範囲を取得する処理&lt;br /&gt;
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            if (view2 == false) return;&lt;br /&gt;
            // 描画フラグON&lt;br /&gt;
            view = true;&lt;br /&gt;
&lt;br /&gt;
            // Mouseを押した座標を記録&lt;br /&gt;
            MD.X = e.X - Xmax;&lt;br /&gt;
            MD.Y = Ymax - e.Y;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            if (view2 == false) return;&lt;br /&gt;
&lt;br /&gt;
            Point start = new Point();&lt;br /&gt;
            Point end = new Point();&lt;br /&gt;
&lt;br /&gt;
            // Mouseを離した座標を記録&lt;br /&gt;
            MU.X = e.X - Xmax;&lt;br /&gt;
            MU.Y = Ymax - e.Y;&lt;br /&gt;
&lt;br /&gt;
            // 座標から(X,Y)座標を計算&lt;br /&gt;
            GetRegion(MD, MU, ref start, ref end);&lt;br /&gt;
&lt;br /&gt;
            // 領域を描画&lt;br /&gt;
            DrawRegion(start, end);&lt;br /&gt;
&lt;br /&gt;
            // 描画フラグOFF&lt;br /&gt;
            view = false;&lt;br /&gt;
            view2 = false;&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            if (view2 == false) return;&lt;br /&gt;
&lt;br /&gt;
            Point p = new Point();&lt;br /&gt;
&lt;br /&gt;
            p.X = e.X - Xmax;&lt;br /&gt;
            p.Y = Ymax - e.Y;&lt;br /&gt;
&lt;br /&gt;
            // 描画フラグcheck&lt;br /&gt;
            if (view == false)&lt;br /&gt;
            {&lt;br /&gt;
                label1.Text = ( ( p.X - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin ).ToString();&lt;br /&gt;
                label2.Text = ( ( p.Y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin ).ToString();&lt;br /&gt;
&lt;br /&gt;
                label3.Text = null;&lt;br /&gt;
                label4.Text = null;&lt;br /&gt;
&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // カーソルが示している場所の座標を取得&lt;br /&gt;
            label3.Text = ( (p.X - Xmin) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin ).ToString();&lt;br /&gt;
            label4.Text = ( (p.Y - Ymin) * (Imax - Imin) / (Ymax - Ymin) + Imin ).ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void GetRegion(Point p1, Point p2, ref Point start, ref Point end)&lt;br /&gt;
        {&lt;br /&gt;
            start.X = Math.Min(p1.X, p2.X);&lt;br /&gt;
            start.Y = Math.Min(p1.Y, p2.Y);&lt;br /&gt;
&lt;br /&gt;
            end.X = Math.Max(p1.X, p2.X);&lt;br /&gt;
            end.Y = Math.Max(p1.Y, p2.Y);&lt;br /&gt;
&lt;br /&gt;
            if (checkBox1.Checked == true) //選択領域を正方形にする&lt;br /&gt;
            {&lt;br /&gt;
                int min_x_y = Math.Min(Math.Abs(end.X - start.X), Math.Abs(end.Y - start.Y));&lt;br /&gt;
&lt;br /&gt;
                end.X = start.X + min_x_y;&lt;br /&gt;
                end.Y = start.Y + min_x_y;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = ( end.X - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Zの座標に変換&lt;br /&gt;
            Imax2 = ( end.Y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
            Rmin2 = ( start.X - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin;&lt;br /&gt;
            Imin2 = ( start.Y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private int GetLength(int start, int end)&lt;br /&gt;
        {&lt;br /&gt;
            return Math.Abs(start - end);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void DrawRegion(Point start, Point end)&lt;br /&gt;
        {&lt;br /&gt;
            Pen blackPen = new Pen(Color.White);&lt;br /&gt;
            SolidBrush tbrush = new SolidBrush(Color.FromArgb(100,220,220,220));&lt;br /&gt;
&lt;br /&gt;
            // 描画する線を点線に設定&lt;br /&gt;
//            blackPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;&lt;br /&gt;
&lt;br /&gt;
            // 画面を消去&lt;br /&gt;
//            g.Clear(SystemColors.Control);&lt;br /&gt;
&lt;br /&gt;
            // 領域を描画&lt;br /&gt;
            g.DrawRectangle(blackPen, start.X, start.Y, GetLength(start.X, end.X), GetLength(start.Y, end.Y));&lt;br /&gt;
            g.FillRectangle(tbrush, start.X, start.Y, GetLength(start.X, end.X), GetLength(start.Y, end.Y));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button5_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標を初期値に戻す&lt;br /&gt;
            Rmax2 = 0.5;&lt;br /&gt;
            Rmin2 = -0.5;&lt;br /&gt;
            Imax2 = 0.5;&lt;br /&gt;
            Imin2 = -0.5;&lt;br /&gt;
&lt;br /&gt;
            label1.Text = null;&lt;br /&gt;
            label2.Text = null;&lt;br /&gt;
            label3.Text = null;&lt;br /&gt;
            label4.Text = null;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*座標のスケールの拡大、縮小ボタンを付ける&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void button6_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを５倍にする&lt;br /&gt;
            double ratio = 5.0;&lt;br /&gt;
            double R_ave = ( Rmax2 + Rmin2 ) / 2;&lt;br /&gt;
            double R_dif2 = ( Rmax2 - Rmin2 ) / 2;&lt;br /&gt;
            double I_ave = ( Imax2 + Imin2 ) / 2;&lt;br /&gt;
            double I_dif2 = ( Imax2 - Imin2 ) / 2;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = R_ave + R_dif2 * ratio;&lt;br /&gt;
            Rmin2 = R_ave - R_dif2 * ratio;&lt;br /&gt;
            Imax2 = I_ave + I_dif2 * ratio;&lt;br /&gt;
            Imin2 = I_ave - I_dif2 * ratio;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button7_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを５分の１倍にする&lt;br /&gt;
            double ratio = 5.0;&lt;br /&gt;
            double R_ave = (Rmax2 + Rmin2) / 2;&lt;br /&gt;
            double R_dif2 = (Rmax2 - Rmin2) / 2;&lt;br /&gt;
            double I_ave = (Imax2 + Imin2) / 2;&lt;br /&gt;
            double I_dif2 = (Imax2 - Imin2) / 2;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = R_ave + R_dif2 / ratio;&lt;br /&gt;
            Rmin2 = R_ave - R_dif2 / ratio;&lt;br /&gt;
            Imax2 = I_ave + I_dif2 / ratio;&lt;br /&gt;
            Imin2 = I_ave - I_dif2 / ratio;&lt;br /&gt;
            &lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*座標の上下左右へシフトさせるボタンを付ける&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void button8_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを左に0.5スケールシフトする&lt;br /&gt;
            double R_ave = (Rmax2 + Rmin2) * 0.5;&lt;br /&gt;
            double R_dif2 = (Rmax2 - Rmin2) * 0.5;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = Rmax2 - R_dif2;&lt;br /&gt;
            Rmin2 = Rmin2 - R_dif2;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button9_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを右に0.5スケールシフトする&lt;br /&gt;
            double R_ave = (Rmax2 + Rmin2) * 0.5;&lt;br /&gt;
            double R_dif2 = (Rmax2 - Rmin2) * 0.5;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = Rmax2 + R_dif2;&lt;br /&gt;
            Rmin2 = Rmin2 + R_dif2;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button10_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを下に0.5スケールシフトする&lt;br /&gt;
            double I_ave = (Imax2 + Imin2) * 0.5 ;&lt;br /&gt;
            double I_dif2 = (Imax2 - Imin2) * 0.5;&lt;br /&gt;
&lt;br /&gt;
            Imax2 = Imax2 - I_dif2;&lt;br /&gt;
            Imin2 = Imin2 - I_dif2;&lt;br /&gt;
&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button11_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを上に0.5スケールシフトする&lt;br /&gt;
            double I_ave = (Imax2 + Imin2) * 0.5;&lt;br /&gt;
            double I_dif2 = (Imax2 - Imin2) * 0.5;&lt;br /&gt;
&lt;br /&gt;
            Imax2 = Imax2 + I_dif2;&lt;br /&gt;
            Imin2 = Imin2 + I_dif2;&lt;br /&gt;
&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 人間の感覚 ==&lt;br /&gt;
=== アロマアート ===&lt;br /&gt;
嗅覚を利用したアート&lt;br /&gt;
&lt;br /&gt;
[http://w3.media.t-kougei.ac.jp/kuha/asp/asp00kuha/bbs.asp かんたん掲示板]に「香りの特徴」を書いてみよう。&lt;br /&gt;
&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/doc/pclit_manu200510.pdf 香りの印刷]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/doc/aromap20040312.pdf アロマプリンタ]&lt;br /&gt;
*[http://ja.wikipedia.org/wiki/RAMPO 映画RAMPO]&lt;br /&gt;
*ブンマー・モンティエン,呼吸の家&lt;br /&gt;
**彫刻の中に入ってハーブの香りを体感するもの　(東京都現代美術館) http://www.tokyoartbeat.com/tablog/images/ShowMeThai3.jpg&lt;br /&gt;
*アムラックスシアター&lt;br /&gt;
**シーンに合わせた座席の振動・香りつきのシアター（トヨタ・アムラックス）&lt;br /&gt;
&lt;br /&gt;
=== 共感覚 ===&lt;br /&gt;
*[http://www.kuhalabo.net/~projectk/color_sound/trial-product/new/ 色彩と調性の関係性についての実験サイト]（久原ゼミの実験企画）&lt;br /&gt;
*[http://ist.ksc.kwansei.ac.jp/~nagata/synesthesia/ 色聴は共感覚]（関西学院理工学部情報科学科の長田典子先生の研究室）&lt;br /&gt;
&lt;br /&gt;
=== ヒーリングアート ===&lt;br /&gt;
;リラックスとリフレッシュ&lt;br /&gt;
:リラックス時には副交感神経が優勢に，興奮状態にある場合は、交感神経が優勢になる。&lt;br /&gt;
:リラックス時にはアルファ波が出る？&lt;br /&gt;
&lt;br /&gt;
;1/f揺らぎ&lt;br /&gt;
*ホワイトノイズ、サイン波、ピンクノイズ(1/f揺らぎ)&lt;br /&gt;
*自然界の音を使用した楽曲 [http://www.media.t-kougei.ac.jp/~projectk/healmusic/ URL]&lt;br /&gt;
* スペクトル&lt;br /&gt;
** EQ(イコライザ)によって，音のスペクトルを加工する。&lt;br /&gt;
** スペクトルとは[[周波数構成]]のこと。ピッチ感のある音は，ピークとなる基本周波数を中心として複数の倍音成分から構成される。&lt;br /&gt;
*** [http://www.cycleof5th.com/products/soundengine/ SoundEngine]や[http://audacity.sourceforge.net/?lang=ja Audacity]でsin波などを生成し，周波数構成を観察。sin波は基本周波数１つのみ。ノコギリ波はsin波の倍数の無限級数。ホワイトノイズはランダムな周波数構成。&lt;br /&gt;
*** 人のボーカル，楽器の音，車のエンジン音のスペクトルを比較してみる。&lt;br /&gt;
;子守唄&lt;br /&gt;
*子守唄の特徴、西洋の子守唄、日本の子守唄&lt;br /&gt;
*子守唄自動作曲プログラム(Max/MSP)[http://www.media.t-kougei.ac.jp/~kuha/doc/sigmus68_suyama_kuhara07.pdf PDF]&lt;br /&gt;
*生理食塩水内レコーディング[http://www.media.t-kougei.ac.jp/kuhalaaa/mdata.php?catego=3&amp;amp;wks_id=230&amp;amp;mode=detail 竹田の子守唄]&lt;br /&gt;
&lt;br /&gt;
;生物的なシステム，生物の癒し効果&lt;br /&gt;
[http://www.kazsh.com/ flash effects] / &lt;br /&gt;
[http://levitated.net/ Levitated  the Exploration of Computation] /&lt;br /&gt;
[http://sodaplay.com/ sodaplay]/ &lt;br /&gt;
[http://www.vectorpark.com/ Vector Park] / &lt;br /&gt;
[http://www.livly.com/ リヴリー・アイランド] / &lt;br /&gt;
[http://electroplankton.com/ エレクトロプランクトン] / &lt;br /&gt;
[http://www.bandai.co.jp/releases/J2004020301.html たまごっちプラス] / &lt;br /&gt;
[http://www.aist.go.jp/pr/expo/contents/paro/paro.html メンタルコミットロボアザラシ型「パロ」] / &lt;br /&gt;
[http://www.necoro.com/home.html 猫型コミュニケーションロボット「ネコロ」] / &lt;br /&gt;
[http://www.nintendo.co.jp/ds/adgj/index.html nintendogs] / &lt;br /&gt;
[http://www.nhk.or.jp/digista/onair/hall_2004.html What is TRUTH?] / &lt;br /&gt;
&lt;br /&gt;
*[http://blossom.media.t-kougei.ac.jp/~kuha/tutorial0/bioart/egg.swf Vector Parkのegg.swf]&lt;br /&gt;
*[http://www.ebiebi.net//F_SAMPLES/clambon/ CLAMBON FARM]&lt;br /&gt;
*[http://intihuatani.usc.edu/cloud/flowing/ flOw]&lt;br /&gt;
*電子ペット Comたま [http://blossom.media.t-kougei.ac.jp/comtama/ URL] / [http://blossom.media.t-kougei.ac.jp/~kuha/doc/genko_comtama.pdf PDF]&lt;br /&gt;
&lt;br /&gt;
== [[脳]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Neural Networks]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Genetic Algorithm]] ==&lt;br /&gt;
&lt;br /&gt;
== Github ==&lt;br /&gt;
共同開発するときに便利。&lt;br /&gt;
&lt;br /&gt;
学内のプロキシー環境で作業する場合、コンソールで&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --global http.proxy proxy-n.t-kougei.ac.jp:8080&lt;br /&gt;
git config --global https.proxy proxy-n.t-kougei.ac.jp:8080&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
とする。&lt;br /&gt;
&lt;br /&gt;
通常のプロキシーのない環境で作業する場合、コンソールで&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --global --unset http.proxy proxy-n.t-kougei.ac.jp:8080&lt;br /&gt;
git config --global --unset https.proxy proxy-n.t-kougei.ac.jp:8080&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
とする。&lt;br /&gt;
&lt;br /&gt;
現在の設定を確認するには、コンソールで、&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
とする。&lt;br /&gt;
&lt;br /&gt;
== リンク ==&lt;br /&gt;
&lt;br /&gt;
http://gushwell.ifdef.jp/&lt;br /&gt;
&lt;br /&gt;
素数のグラフィック&lt;br /&gt;
http://www.datapointed.net/visualizations/math/factorization/animated-diagrams/?infinity&lt;br /&gt;
&lt;br /&gt;
[[Category:授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E7%94%9F%E5%91%BD%E6%83%85%E5%A0%B1%E3%82%A2%E3%83%BC%E3%83%88%E8%AB%96</id>
		<title>生命情報アート論</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E7%94%9F%E5%91%BD%E6%83%85%E5%A0%B1%E3%82%A2%E3%83%BC%E3%83%88%E8%AB%96"/>
				<updated>2026-01-15T10:15:25Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* アロマアート */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
&lt;br /&gt;
*成績評価&lt;br /&gt;
**出席：学生証scan+[http://www.kuhalabo.net/~web/examination/mpaper/min_paper.php?subj_id=3&amp;amp;grade=2 Minutes paper]&lt;br /&gt;
**課題：セルオートマトン課題、再帰呼び出し図形課題、複素平面フラクタル課題&lt;br /&gt;
**小テスト：[http://www.kuhalabo.net/~web/examination/result_highscore.php?subj_id=3 ハイスコア]&lt;br /&gt;
&lt;br /&gt;
;授業概要及び到達目標&lt;br /&gt;
:インタラクティブアートは芸術を基盤として科学や工学を統合する新しい領域である。生物科学に関連した分野として、人工生命、ライフゲーム、フラクタル、オートマトン、遺伝的アルゴリズム、ニューラルネットワークなど応用範囲の広いものが数多く存在する。&lt;br /&gt;
そういった生物に見られる特徴をアートに応用したジェネラティブアートの作品をC++のプログラミングを使用して、実際に作成してみる。&lt;br /&gt;
&lt;br /&gt;
本講義の目標は以下の通り。&lt;br /&gt;
&lt;br /&gt;
# 生物の特徴と生物的なシステムについて理解する。&lt;br /&gt;
# 複雑系システムについて理解し、応用例を作成できる。&lt;br /&gt;
# openFrameworksを使って作品のプログラミングができる。&lt;br /&gt;
&lt;br /&gt;
== アナウンス ==&lt;br /&gt;
&lt;br /&gt;
開発環境として[[openFrameworks for Visual studio]]を使用します。&lt;br /&gt;
&lt;br /&gt;
テキストや開発環境については、以下を参照してください。&lt;br /&gt;
* http://www.kuhalabo.net/kxoops/modules/d3blog/details.php?bid=141&lt;br /&gt;
&lt;br /&gt;
一年生の時にメディアプログラミング演習I程度のプログラミングスキルがあるものとして、授業を進めます。&lt;br /&gt;
もし、プログラミングに不安があるなら、上記テキストを使って、自分で予習や自習をしてください。&lt;br /&gt;
&lt;br /&gt;
== 予定 ==&lt;br /&gt;
;2014年度&lt;br /&gt;
&lt;br /&gt;
# 9/30(火) ガイダンス, 生物と情報とアート，openFrameworksプログラミング演習&lt;br /&gt;
# 10/7(火) openFrameworks C++プログラミング&lt;br /&gt;
# 10/14(火) 幾何学図形の描画&lt;br /&gt;
# 10/21(火) ランダムウォーク&lt;br /&gt;
# 10/28(火) セルオートマトン&lt;br /&gt;
# 11/4(火) セルオートマトン&lt;br /&gt;
# 11/11(火) セルオートマトン&lt;br /&gt;
# 11/18(火) セルオートマトン&lt;br /&gt;
# 11/25(火) セルオートマトン&lt;br /&gt;
# 12/2(火) フラクタルと再帰呼び出し&lt;br /&gt;
# 12/9(火) 課題制作日&lt;br /&gt;
# 12/16(火) フラクタルと再帰呼び出し&lt;br /&gt;
# 1/6(火) 予備演習日（出席はとりません）&lt;br /&gt;
# 1/20(火) 遺伝的アルゴリズム&lt;br /&gt;
# 1/28(火) 小テスト&lt;br /&gt;
&lt;br /&gt;
== 生物と情報とアート ==&lt;br /&gt;
* 生物とは? 生物の特徴とは？&lt;br /&gt;
** 例：小石と貝殻&lt;br /&gt;
** * [http://blossom.media.t-kougei.ac.jp/~kuha/easybbs/easy_bbs4klb2.php 簡単BBS]に「生物と無生物の違いは何か？」説明してみよう。&lt;br /&gt;
* ゲノムのDNAマップ [http://www.ncbi.nlm.nih.gov/mapview/ NCBI Map Viewer]&lt;br /&gt;
* [http://www.kuhalabo.net/kxoops/modules/d3blog/details.php?bid=5 ヒト一人を再生するのに必要な情報量は？]&lt;br /&gt;
&lt;br /&gt;
== メモ　==&lt;br /&gt;
Visual Studioのショートカット&lt;br /&gt;
&lt;br /&gt;
* Ctrl-K Ctrl-C コメントアウト&lt;br /&gt;
* Ctrl-K Ctrl-U コメントアウト解除&lt;br /&gt;
* Ctrl-K Ctrl-F インデントをそろえる&lt;br /&gt;
&lt;br /&gt;
[http://yoppa.org/ クリエイティブ・コーダー]&lt;br /&gt;
&lt;br /&gt;
== 複雑系 ==&lt;br /&gt;
=== セルオートマトン ===&lt;br /&gt;
&lt;br /&gt;
*配布資料[http://www.kuhalabo.net/~kuha/tutorial0/bioart/cellautomaton2007.pdf PDF]&lt;br /&gt;
*[http://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%83%AB%E3%83%94%E3%83%B3%E3%82%B9%E3%82%AD%E3%83%BC%E3%81%AE%E3%82%AE%E3%83%A3%E3%82%B9%E3%82%B1%E3%83%83%E3%83%88 シェルピンスキーのガスケット]&lt;br /&gt;
** [http://falconnet.peddie.org/students/2007/nburoojy/projects/cellular/ 256種類の１次元セルオートマトンの画像] / &lt;br /&gt;
*[http://ja.wikipedia.org/wiki/%E3%82%BB%E3%83%AB%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3 セルオートマトン]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Elementary_cellular_automaton Elementary cellular automaton]&lt;br /&gt;
&lt;br /&gt;
=== ライフゲーム ===&lt;br /&gt;
[http://www.kuhalabo.net/~kuha/tutorial0/bioart/Lifegame.exe ライフゲームの例] / &lt;br /&gt;
[http://homepage3.nifty.com/izushi/LifeGame/ ライフゲーム入門] / &lt;br /&gt;
[http://www.kuhalabo.net/~kuha/tutorial0/bioart/cagallary/ セルオートマトン・ギャラリー] /&lt;br /&gt;
&lt;br /&gt;
;セルオートマトン音楽&lt;br /&gt;
[http://tones.wolfram.com/generate/ WolframTones]/ &lt;br /&gt;
[http://tamw.atari-users.net/camus.htm CAMUS]/ &lt;br /&gt;
[http://www.glitchds.com/ Glitch DS]/ &lt;br /&gt;
[http://www.kuhalabo.net/lifegorch/ Life Game Orchestra] / &lt;br /&gt;
&lt;br /&gt;
;ギャラリー&lt;br /&gt;
[http://www.collidoscope.com/modernca/ Modern Cellular Automata]/ &lt;br /&gt;
[http://prenzl.sourceforge.net/gallery/category.php CArt gallery]/ &lt;br /&gt;
[http://www.upl.cs.wisc.edu/~oblio/gnarly.html Cellular Automata Art]/ &lt;br /&gt;
[http://akinao.at.infoseek.co.jp/ascii/index.html ASCII Art Cell Automaton]/ &lt;br /&gt;
&lt;br /&gt;
;参考&lt;br /&gt;
[http://ja.wikipedia.org/wiki/%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AF%E3%83%BC%E3%83%AB%E3%83%89 ワイヤワールド] /&lt;br /&gt;
&lt;br /&gt;
=== 人工生命 ===&lt;br /&gt;
[http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%82%B0%E3%83%88%E3%83%B3%E3%81%AE%E3%82%A2%E3%83%AA ラングトンのアリ] / &lt;br /&gt;
[http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%82%B0%E3%83%88%E3%83%B3%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%97 ラングトンのループ] /&lt;br /&gt;
[http://necsi.org/postdocs/sayama/sdsr/java/ 自己増殖ループ] / &lt;br /&gt;
[http://www.red3d.com/cwr/boids/ Reynolds Boid] /&lt;br /&gt;
&lt;br /&gt;
http://www.local-guru.net/blog/2010/8/19/openframeworks-boid-demo&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/tado/6603347&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Birds Algorhythm Craig Reynolds&lt;br /&gt;
http://processing.org/examples/flocking.html&lt;br /&gt;
&lt;br /&gt;
== [[C Sharp Programming]] ==&lt;br /&gt;
&lt;br /&gt;
== フラクタル ==&lt;br /&gt;
古代ギリシャからあるユークリッド幾何学と20世紀のフラクタル幾何学の比較&lt;br /&gt;
&lt;br /&gt;
;考察&lt;br /&gt;
:古代エジプト人は3:4:5の辺を持つ三角形で直角が得られることを知っていた．ピラミッドなどの巨大建造物．&lt;br /&gt;
:三平方の定理を発見したピタゴラスはどこがすごいか？&lt;br /&gt;
&lt;br /&gt;
[http://www.gaia.h.kyoto-u.ac.jp/~fractal/ フラクタル日除け]&lt;br /&gt;
&lt;br /&gt;
== 自己相似系 ==&lt;br /&gt;
=== 再帰的呼出しによる樹木の描画 ===&lt;br /&gt;
*'''再帰的( recursive )呼び出し'''とは，サブルーチンや関数が，自分自身を呼び出すことをいう。樹木は，枝の１つを取り出して拡大しても，元の枝と同じ形（相似形）をしている。これは，同じサブルーチンで枝を描画しているからである。&lt;br /&gt;
&lt;br /&gt;
*再帰的呼出し的なCollaborate Flash Animation：[http://www.zoomquilt.org/ zoomquilt] ([http://www.media.t-kougei.ac.jp/~kuha/tutorial0/bioart/zoomquilt.swf swf])&lt;br /&gt;
*例：実行ファイル，ソース，Taneクラス &lt;br /&gt;
&lt;br /&gt;
=== C#による実装 ===&lt;br /&gt;
==== 新しいクラスの定義 ====&lt;br /&gt;
*「プロジェクト」メニューから「クラスの追加」で新しいクラス名を入力する。クラスの定義の中にメソッドを記述する。&lt;br /&gt;
* 注意&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
をTane.csの冒頭に追加&lt;br /&gt;
&lt;br /&gt;
==== 樹木の描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Bintree.jpg]]&lt;br /&gt;
[[ファイル:Bintree2.JPG]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
線分(x1,y1)-(x2,y2)が与えられたら、(x2,y2)の先端に(x3,y3), (x4,y4)を取り、線分(x2,y2)-(x3,y3)と線分(x2,y2)-(x4,y4)を描画する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    class Tane&lt;br /&gt;
    {&lt;br /&gt;
        public void Eda(int n, double x1, double y1, double x2, double y2, double angle, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4;&lt;br /&gt;
            double s = Math.Sin(angle * Math.PI / 180.0);&lt;br /&gt;
            double c = Math.Cos(angle * Math.PI / 180.0);&lt;br /&gt;
            double dx = 0.7 * (x2 - x1);&lt;br /&gt;
            double dy = 0.7 * (y2 - y1);&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = x2 + dx * c - dy * s;&lt;br /&gt;
                y3 = y2 + dx * s + dy * c;&lt;br /&gt;
                x4 = x2 + dx * c + dy * s;&lt;br /&gt;
                y4 = y2 - dx * s + dy * c;&lt;br /&gt;
                // 枝を描画する&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                g.DrawLine(pen, (float)x2, (float)y2, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x2, (float)y2, (float)x4, (float)y4);&lt;br /&gt;
                //子の再起呼び出し&lt;br /&gt;
                Eda(n - 1, x2, y2, x3, y3, angle, g, pen);&lt;br /&gt;
                Eda(n - 1, x2, y2, x4, y4, angle, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;樹木描画ボタンクリックの中身&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 10;  //枝の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width / 2; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width / 2; //開始位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.8; //開始位置 y座標&lt;br /&gt;
            double angle = 30.0; //子供の枝の角度の差分&lt;br /&gt;
            tane.Eda(n, x0, y0, x1, y1, angle, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== コッホ図形の描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Koch.jpg]]&lt;br /&gt;
[[ファイル:Koch2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Koch(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4, x5, y5;&lt;br /&gt;
            double s = Math.Sin(Math.PI / 3.0);&lt;br /&gt;
            double c = Math.Cos(Math.PI / 3.0);&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = (2 * x1 + x2) / 3.0;&lt;br /&gt;
                y3 = (2 * y1 + y2) / 3.0;&lt;br /&gt;
                x4 = (x1 + 2 * x2) / 3.0;&lt;br /&gt;
                y4 = (y1 + 2 * y2) / 3.0;&lt;br /&gt;
                x5 = x3 + (x4 - x3) * c + (y4 - y3) * s;&lt;br /&gt;
                y5 = y3 - (x4 - x3) * s + (y4 - y3) * c;&lt;br /&gt;
                // ジェネレータを描画する&lt;br /&gt;
                pen.Color = Color.Black;&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x4, (float)y4);&lt;br /&gt;
                pen.Color = Color.Green;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x5, (float)y5);&lt;br /&gt;
                g.DrawLine(pen, (float)x5, (float)y5, (float)x4, (float)y4);&lt;br /&gt;
                g.DrawLine(pen, (float)x4, (float)y4, (float)x2, (float)y2);&lt;br /&gt;
                // 子の再起呼び出し&lt;br /&gt;
                Koch(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Koch(n - 1, x3, y3, x5, y5, g, pen);&lt;br /&gt;
                Koch(n - 1, x5, y5, x4, y4, g, pen);&lt;br /&gt;
                Koch(n - 1, x4, y4, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;コッホ図形描画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            // マウス位置へ直線を描画する&lt;br /&gt;
            int n = 4;  //子の世代数&lt;br /&gt;
            double x0 = 0; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.6 ; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.6; //終了位置 y座標&lt;br /&gt;
            tane.Koch(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ドラゴン図形の描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Dragon.jpg]]&lt;br /&gt;
[[ファイル:Dragon2.jpg]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Dragon(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4, x5, y5;&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = 0.5 * ( x1 + x2);&lt;br /&gt;
                y3 = 0.5 * ( y1 + y2);&lt;br /&gt;
                x4 = 0.5 * (x1 + x3 - y1 + y3);&lt;br /&gt;
                y4 = 0.5 * (x1 - x3 + y1 + y3);&lt;br /&gt;
                x5 = 0.5 * (x2 + x3 - y2 + y3);&lt;br /&gt;
                y5 = 0.5 * (x2 - x3 + y2 + y3);&lt;br /&gt;
&lt;br /&gt;
                // 枝を描画する&lt;br /&gt;
                pen.Color = Color.Black;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x2, (float)y2);&lt;br /&gt;
                pen.Color = Color.Green;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x4, (float)y4);&lt;br /&gt;
                g.DrawLine(pen, (float)x4, (float)y4, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x5, (float)y5);&lt;br /&gt;
                g.DrawLine(pen, (float)x5, (float)y5, (float)x2, (float)y2);&lt;br /&gt;
                Dragon(n - 1, x1, y1, x4, y4, g, pen);&lt;br /&gt;
                Dragon(n - 1, x4, y4, x3, y3, g, pen);&lt;br /&gt;
                Dragon(n - 1, x3, y3, x5, y5, g, pen);&lt;br /&gt;
                Dragon(n - 1, x5, y5, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;ドラゴン図形描画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;  //子の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width * 0.1; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.5; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width * 0.9; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.5; //終了位置 y座標&lt;br /&gt;
            tane.Dragon(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== シダ葉の描画 ====&lt;br /&gt;
;ドラゴン図形の変化形&lt;br /&gt;
* ドラゴン図形で使用した(x1,y1), (x2,y2), (x3,y3), (x4,y4), (x5,y5)を使う&lt;br /&gt;
* 直線(x1,y1)-(x2,y2), 直線(x1,y1)-(x4,y4),  直線(x3,y3)-(x5,y5)を基本図形とする。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Sida2.JPG]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Fern(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4, x5, y5;&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = ( x1 + x2 ) / 2.0;&lt;br /&gt;
                y3 = ( y1 + y2 ) / 2.0;&lt;br /&gt;
                x4 = ( x1 + x3 - y1 + y3) / 2.0;&lt;br /&gt;
                y4 = ( x1 - x3 + y1 + y3) / 2.0;&lt;br /&gt;
                x5 = ( x2 + x3 - y2 + y3) / 2.0;&lt;br /&gt;
                y5 = ( x2 - x3 + y2 + y3) / 2.0;&lt;br /&gt;
                // 枝を描画する&lt;br /&gt;
                pen.Color = Color.Green;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x5, (float)y5);&lt;br /&gt;
                Fern(n - 1, x1, y1, x4, y4, g, pen);&lt;br /&gt;
                Fern(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Fern(n - 1, x3, y3, x2, y2, g, pen);&lt;br /&gt;
                Fern(n - 1, x3, y3, x5, y5, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;シダ葉描画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;  //子の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width * 0.1; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.5; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width * 0.9; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.5; //終了位置 y座標&lt;br /&gt;
            tane.Fern(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Cカーブの描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Ccurve.jpg]]&lt;br /&gt;
[[ファイル:Ccurve2.jpg]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Ccurve(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3;&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = 0.5 * (x1 + x2 - y1 + y2);&lt;br /&gt;
                y3 = 0.5 * (x1 - x2 + y1 + y2);&lt;br /&gt;
                // 枝を描画する&lt;br /&gt;
                pen.Color = Color.Black;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                pen.Color = Color.Green;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x2, (float)y2);&lt;br /&gt;
                Ccurve(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Ccurve(n - 1, x3, y3, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Cカーブ画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 12;  //子の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width * 0.25; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.75; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width * 0.75; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.75; //終了位置 y座標&lt;br /&gt;
            tane.Ccurve(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 内分点と回転によるカスタムジェネレータの描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:gene01.JPG]]&lt;br /&gt;
[[ファイル:gene012.JPG]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Gene01(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4;&lt;br /&gt;
            double p = 2.0;&lt;br /&gt;
            double q = 3.0;&lt;br /&gt;
            double th = -30.0;&lt;br /&gt;
            double s = Math.Sin(th * Math.PI / 180.0);&lt;br /&gt;
            double c = Math.Cos(th * Math.PI / 180.0);&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = (q * x1 + p * x2) / (p + q);&lt;br /&gt;
                y3 = (q * y1 + p * y2) / (p + q);&lt;br /&gt;
                x4 = x1 + (x3 - x1) * c - (y3 - y1) * s;&lt;br /&gt;
                y4 = y1 + (x3 - x1) * s + (y3 - y1) * c;&lt;br /&gt;
                pen.Color = Color.Yellow;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x4, (float)y4);&lt;br /&gt;
                Gene01(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Gene01(n - 1, x1, y1, x4, y4, g, pen);&lt;br /&gt;
                Gene01(n - 1, x3, y3, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;カスタムジェネレータ描画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;  //子の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width * 0.1; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.5; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width * 0.9; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.5; //終了位置 y座標&lt;br /&gt;
            tane.Gene01(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;マウスドラッグで始点と終点を決めて描く&lt;br /&gt;
*プロパティウィンドウにイベント(稲妻のアイコン)のリストを表示させ、MouseDownイベントをダブルクリックすると、MouseDownのメソッドが自動生成されます。&lt;br /&gt;
*label1,label2に始点の座標を、label3, label4に終点の座標を入れる&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            label1.Text = e.X.ToString();&lt;br /&gt;
            label2.Text = e.Y.ToString();&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;&lt;br /&gt;
            double x0 = double.Parse(label1.Text);&lt;br /&gt;
            double y0 = double.Parse(label2.Text);&lt;br /&gt;
            double x1 = double.Parse(label3.Text);&lt;br /&gt;
            double y1 = double.Parse(label4.Text);&lt;br /&gt;
&lt;br /&gt;
            tane.Gene01(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            label3.Text = e.X.ToString();&lt;br /&gt;
            label4.Text = e.Y.ToString();&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
p,q,thをクラスのメンバー変数にして、外部からランダムに与える。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    class Tane&lt;br /&gt;
    {&lt;br /&gt;
        public double p { get; set; }&lt;br /&gt;
        public double q { get; set; }&lt;br /&gt;
        public double th { get; set; }&lt;br /&gt;
&lt;br /&gt;
        public void Gene01(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4;&lt;br /&gt;
            double s = Math.Sin(th * Math.PI / 180.0);&lt;br /&gt;
            double c = Math.Cos(th * Math.PI / 180.0);&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = (q * x1 + p * x2) / (p + q);&lt;br /&gt;
                y3 = (q * y1 + p * y2) / (p + q);&lt;br /&gt;
                x4 = x1 + (x3 - x1) * c - (y3 - y1) * s;&lt;br /&gt;
                y4 = y1 + (x3 - x1) * s + (y3 - y1) * c;&lt;br /&gt;
                pen.Color = Color.Yellow;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x4, (float)y4);&lt;br /&gt;
                Gene01(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Gene01(n - 1, x1, y1, x4, y4, g, pen);&lt;br /&gt;
                Gene01(n - 1, x3, y3, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
            Random rnd = new Random();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;&lt;br /&gt;
            double x0 = double.Parse(label1.Text);&lt;br /&gt;
            double y0 = double.Parse(label2.Text);&lt;br /&gt;
            double x1 = double.Parse(label3.Text);&lt;br /&gt;
            double y1 = double.Parse(label4.Text);&lt;br /&gt;
&lt;br /&gt;
            tane.p = rnd.Next(2, 6);&lt;br /&gt;
            tane.q = rnd.Next(3, 7);&lt;br /&gt;
            tane.th = rnd.Next(10, 90);&lt;br /&gt;
&lt;br /&gt;
            tane.Gene01(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== タイマーを使用した樹木のアニメーション ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void button3_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            timer1.Enabled = true;&lt;br /&gt;
            timer1.Start();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button4_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            timer1.Stop();&lt;br /&gt;
            timer1.Enabled = false;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        public int cnt; //タイマー用カウンタ&lt;br /&gt;
        private void timer1_Tick(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 1);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            g.Clear(Color.Black);&lt;br /&gt;
&lt;br /&gt;
            cnt++;  //タイマー用カウンタのカウントアップ&lt;br /&gt;
            int n = 10;  //枝の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width / 2; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width / 2; //開始位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.9 - cnt * 2; //開始位置 y座標&lt;br /&gt;
            double angle = 30.0; //子供の枝の角度の変化の差分&lt;br /&gt;
            double a_rate = angle + cnt * 2;&lt;br /&gt;
            tane.Eda(n, x0, y0, x1, y1, a_rate, g, pen);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 複素平面フラクタル ==&lt;br /&gt;
*[http://blossom.media.t-kougei.ac.jp/~kuha/tutorial0/bioart/9_complex.pdf 配布資料PDF]&lt;br /&gt;
*[http://blossom.media.t-kougei.ac.jp/~kuha/tutorial0/bioart/mandelv3.exe 複複素平面フラクタル図形描画ソフトウェア for Windows]&lt;br /&gt;
**注）comdlg32.ocxがない場合は，[http://www.microsoft.com/downloads/ja-jp/details.aspx?displaylang=ja&amp;amp;FamilyID=7B9BA261-7A9C-43E7-9117-F673077FFB3C ここ]からRuntimeファイル群をダウンロードしてください。&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=0fKBhvDjuy0 Powers of Ten]&lt;br /&gt;
&lt;br /&gt;
=== C#の座標変換 ===&lt;br /&gt;
;座標原点&lt;br /&gt;
原点を移動するには、TranslateTransformメソッドを使う。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          g.TranslateTransform(x1,y1); //座標原点を(x1,y1)に移動&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;座標の回転&lt;br /&gt;
座標軸をth度(degree)だけ回転するには、RotateTransformメソッドを使う。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
　          g.RotateTransform(th);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;座標軸のスケール、方向&lt;br /&gt;
座標スケールを変換するには、ScaleTransformメソッドを使う。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            g.ScaleTransform(scx,scy);  //X軸をscx倍、Y軸をscy倍する&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
X軸は右、Y軸は下が正方向なので、座標軸方向を反転するには、次のとおり。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
　 　　　　　g.ScaleTransform(1,-1);   //Y軸方向の反転&lt;br /&gt;
　 　　　　　g.ScaleTransform(-1,1);  //X軸方向の反転&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 複素平面フラクタルの描画 ===&lt;br /&gt;
;自己平方の描画プログラム&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2); //原点を中央に移動&lt;br /&gt;
            g.ScaleTransform(1, -1); //Y軸の向きを反転&lt;br /&gt;
            Pen pen = new Pen(Color.White);&lt;br /&gt;
&lt;br /&gt;
            int Xmax = pictureBox1.Width / 2;&lt;br /&gt;
            int Xmin = -pictureBox1.Width / 2;&lt;br /&gt;
            int Ymax = pictureBox1.Height / 2;&lt;br /&gt;
            int Ymin = -pictureBox1.Height / 2;&lt;br /&gt;
            double Rmax = 0.5;&lt;br /&gt;
            double Rmin = -0.5;&lt;br /&gt;
            double Imax = 0.5;&lt;br /&gt;
            double Imin = -0.5;&lt;br /&gt;
            double Zr, newZr;&lt;br /&gt;
            double Zi, newZi;&lt;br /&gt;
            double Ar = -0.2;&lt;br /&gt;
            double Ai = 0.675;&lt;br /&gt;
            int Nmax = 100;&lt;br /&gt;
            int Rstep = 1; // 何ピクセルごとに計算するか&lt;br /&gt;
            int Istep = 1;&lt;br /&gt;
&lt;br /&gt;
            for (int x = Xmin; x &amp;lt; Xmax; x = x + Rstep)&lt;br /&gt;
            {&lt;br /&gt;
                for (int y = Ymin; y &amp;lt; Ymax; y = y + Istep)&lt;br /&gt;
                {&lt;br /&gt;
                    Zr = ( x - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Zの座標に変換&lt;br /&gt;
                    Zi = ( y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
                    int n = 0;&lt;br /&gt;
                    while ( Zr * Zr + Zi * Zi &amp;lt; 4 &amp;amp; n &amp;lt; Nmax )&lt;br /&gt;
                    {&lt;br /&gt;
                        newZr = Zr * Zr - Zi * Zi + Ar; // f(z) = X^2 * Aの実数部&lt;br /&gt;
                        newZi = 2 * Zr * Zi + Ai; // f(z) = X^2 * Aの虚数部&lt;br /&gt;
                        Zr = newZr;&lt;br /&gt;
                        Zi = newZi;&lt;br /&gt;
                        n++;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        pen.Color = Color.FromArgb(255, n * 255 / Nmax, 0, 0);//nの数に応じて色分ける&lt;br /&gt;
                        g.DrawRectangle(pen, x, y, 1, 1);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;マンデルブロー集合の描画プログラム&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2); //原点を中央に移動&lt;br /&gt;
            g.ScaleTransform(1, -1); //Y軸の向きを反転&lt;br /&gt;
            Pen pen = new Pen(Color.White);&lt;br /&gt;
&lt;br /&gt;
            int Xmax = pictureBox1.Width / 2;&lt;br /&gt;
            int Xmin = -pictureBox1.Width / 2;&lt;br /&gt;
            int Ymax = pictureBox1.Height / 2;&lt;br /&gt;
            int Ymin = -pictureBox1.Height / 2;&lt;br /&gt;
            double Rmax = 1.5;&lt;br /&gt;
            double Rmin = -1.5;&lt;br /&gt;
            double Imax = 1.5;&lt;br /&gt;
            double Imin = -1.5;&lt;br /&gt;
            double Zr, newZr;&lt;br /&gt;
            double Zi, newZi;&lt;br /&gt;
            double Cr;&lt;br /&gt;
            double Ci;&lt;br /&gt;
            int Nmax = 50;&lt;br /&gt;
            int Rstep = 1; // 何ピクセルごとに計算するか&lt;br /&gt;
            int Istep = 1;&lt;br /&gt;
&lt;br /&gt;
            for (int x = Xmin; x &amp;lt; Xmax; x = x + Rstep)&lt;br /&gt;
            {&lt;br /&gt;
                for (int y = Ymin; y &amp;lt; Ymax; y = y + Istep)&lt;br /&gt;
                {&lt;br /&gt;
                    Cr = ( x - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Cの座標に変換&lt;br /&gt;
                    Ci = ( y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
                    int n = 0;&lt;br /&gt;
                    Zr = 0.0;&lt;br /&gt;
                    Zi = 0.0;&lt;br /&gt;
                    while (Zr * Zr + Zi * Zi &amp;lt; 4 &amp;amp; n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        newZr = Zr * Zr - Zi * Zi + Cr; // f(z) = X^2 * Cの実数部&lt;br /&gt;
                        newZi = 2 * Zr * Zi + Ci; // f(z) = X^2 * Cの虚数部&lt;br /&gt;
                        Zr = newZr;&lt;br /&gt;
                        Zi = newZi;&lt;br /&gt;
                        n++;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        pen.Color = Color.FromArgb(255, 0, n * 255 / Nmax, 0);//nの数に応じて色分ける&lt;br /&gt;
                        g.DrawRectangle(pen, x, y, 1, 1);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Julia集合&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2); //原点を中央に移動&lt;br /&gt;
            g.ScaleTransform(1, -1); //Y軸の向きを反転&lt;br /&gt;
            Pen pen = new Pen(Color.White);&lt;br /&gt;
&lt;br /&gt;
            int Xmax = pictureBox1.Width / 2;&lt;br /&gt;
            int Xmin = -pictureBox1.Width / 2;&lt;br /&gt;
            int Ymax = pictureBox1.Height / 2;&lt;br /&gt;
            int Ymin = -pictureBox1.Height / 2;&lt;br /&gt;
            double Rmax = 1.5;&lt;br /&gt;
            double Rmin = -1.5;&lt;br /&gt;
            double Imax = 1.5;&lt;br /&gt;
            double Imin = -1.5;&lt;br /&gt;
            double Xr, Xr2, XrXi23, newXr;&lt;br /&gt;
            double Xi, Xi2, newXi;&lt;br /&gt;
            double Dr;&lt;br /&gt;
            double Di;&lt;br /&gt;
            int Nmax = 50;&lt;br /&gt;
            int Rstep = 1; // 何ピクセルごとに計算するか&lt;br /&gt;
            int Istep = 1;&lt;br /&gt;
&lt;br /&gt;
            for (int x = Xmin; x &amp;lt; Xmax; x = x + Rstep)&lt;br /&gt;
            {&lt;br /&gt;
                for (int y = Ymin; y &amp;lt; Ymax; y = y + Istep)&lt;br /&gt;
                {&lt;br /&gt;
                    Xr = ( x - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Cの座標に変換&lt;br /&gt;
                    Xi = ( y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
                    int n = 0;&lt;br /&gt;
                    Dr = 1.0;&lt;br /&gt;
                    Di = 1.0;&lt;br /&gt;
                    while (Dr + Di &amp;gt; 0.001 &amp;amp; n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        Xr2 = Xr * Xr;&lt;br /&gt;
                        Xi2 = Xi * Xi;&lt;br /&gt;
                        XrXi23 = (Xr2 + Xi2) * (Xr2 + Xi2) / 3;&lt;br /&gt;
                        newXr = Xr * 2 / 3 + (Xr2 - Xi2) / XrXi23; // f(z) = X^2 * Cの実数部&lt;br /&gt;
                        newXi = Xi * 2 / 3 - 2 * Xr * Xi / XrXi23; // f(z) = X^2 * Cの虚数部&lt;br /&gt;
                        Dr = Math.Abs(newXr - Xr);&lt;br /&gt;
                        Di = Math.Abs(newXi - Xi);&lt;br /&gt;
                        Xr = newXr;&lt;br /&gt;
                        Xi = newXi;&lt;br /&gt;
                        n++;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        int rr = n * 255 / Nmax;&lt;br /&gt;
                        int gg = 0;&lt;br /&gt;
                        int bb = 0;&lt;br /&gt;
                        pen.Color = Color.FromArgb(255, rr, gg, bb);//nの数に応じて色分ける&lt;br /&gt;
                        g.DrawRectangle(pen, x, y, 1, 1);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 配色の工夫 ===&lt;br /&gt;
&lt;br /&gt;
個々の色の差をハッキリさせる。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    int rr = (n % 13 + 1) * 255 / 14;&lt;br /&gt;
    int gg = (n % 11 + 1) * 255 / 12;&lt;br /&gt;
    int bb = (n % 7 + 1) * 255 / 8;&lt;br /&gt;
    pen.Color = Color.FromArgb(255, rr, gg, bb);&lt;br /&gt;
    g.DrawRectangle(pen, x, y, Rstep, Istep);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ピクセルの目を粗くした時に、矩形の中身を塗りつぶす。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    pen.Color = Color.FromArgb(255, rr, gg, bb);&lt;br /&gt;
    brush.Color = Color.FromArgb(255, rr, gg, bb);&lt;br /&gt;
    g.DrawRectangle(pen, x, y, Rstep, Istep);&lt;br /&gt;
    g.FillRectangle(brush, x, y, Rstep, Istep);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ar, Ai, Rstep, Istepなどをテキストボックスから入力する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Ar = double.Parse(textBox1.Text);&lt;br /&gt;
            Ai = double.Parse(textBox2.Text);&lt;br /&gt;
&lt;br /&gt;
            Rstep = int.Parse(textBox3.Text);&lt;br /&gt;
            Istep = Rstep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== いろいろカスタマイズ ===&lt;br /&gt;
&lt;br /&gt;
*複素平面の座標のスケールをラベルに表示する。&lt;br /&gt;
*マウスドラッグで、新しく描画する範囲を選択する。&lt;br /&gt;
*選択領域を正方形にするかどうかを、チェックボックスで指定する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        //　グローバルに宣言&lt;br /&gt;
        Point MD = new Point();//マウスダウンの位置&lt;br /&gt;
        Point MU = new Point(); //マウスアップの位置&lt;br /&gt;
&lt;br /&gt;
        bool view = false;//選択領域を描画するかどうかの判定&lt;br /&gt;
        bool view2 = false;&lt;br /&gt;
        Graphics g;&lt;br /&gt;
        int Xmax;&lt;br /&gt;
        int Xmin;&lt;br /&gt;
        int Ymax;&lt;br /&gt;
        int Ymin;&lt;br /&gt;
&lt;br /&gt;
        double Rmax;&lt;br /&gt;
        double Rmin;&lt;br /&gt;
        double Imax;&lt;br /&gt;
        double Imin;&lt;br /&gt;
&lt;br /&gt;
        double Rmax2;//マウスドラッグで指定した新しい範囲&lt;br /&gt;
        double Rmin2;&lt;br /&gt;
        double Imax2;&lt;br /&gt;
        double Imin2;&lt;br /&gt;
&lt;br /&gt;
        public Form1()&lt;br /&gt;
        {&lt;br /&gt;
            InitializeComponent();&lt;br /&gt;
            g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2); //原点を中央に移動&lt;br /&gt;
            g.ScaleTransform(1, -1); //Y軸の向きを反転&lt;br /&gt;
            view2 = true;&lt;br /&gt;
&lt;br /&gt;
            Xmax = pictureBox1.Width / 2;&lt;br /&gt;
            Xmin = -pictureBox1.Width / 2;&lt;br /&gt;
            Ymax = pictureBox1.Height / 2;&lt;br /&gt;
            Ymin = -pictureBox1.Height / 2;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = 0.5;&lt;br /&gt;
            Rmin2 = -0.5;&lt;br /&gt;
            Imax2 = 0.5;&lt;br /&gt;
            Imin2 = -0.5;&lt;br /&gt;
            Rmax = Rmax2;&lt;br /&gt;
            Rmin = Rmin2;&lt;br /&gt;
            Imax = Imax2;&lt;br /&gt;
            Imin = Imin2;&lt;br /&gt;
&lt;br /&gt;
            label1.Text = null;&lt;br /&gt;
            label2.Text = null;&lt;br /&gt;
            label3.Text = null;&lt;br /&gt;
            label4.Text = null;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button1_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Pen pen = new Pen(Color.White);&lt;br /&gt;
            SolidBrush brush = new SolidBrush(Color.FromArgb(90, 200, 200, 200));&lt;br /&gt;
&lt;br /&gt;
            g.Clear(Color.Black); //描画領域をクリア（黒で塗りつぶす）&lt;br /&gt;
&lt;br /&gt;
            Rmax = Rmax2;&lt;br /&gt;
            Rmin = Rmin2;&lt;br /&gt;
            Imax = Imax2;&lt;br /&gt;
            Imin = Imin2;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
&lt;br /&gt;
            label5.Refresh();&lt;br /&gt;
            label6.Refresh();&lt;br /&gt;
            label7.Refresh();&lt;br /&gt;
            label8.Refresh();&lt;br /&gt;
            view2 = true;&lt;br /&gt;
&lt;br /&gt;
            double Zr, newZr;&lt;br /&gt;
            double Zi, newZi;&lt;br /&gt;
            double Ar = -0.2;&lt;br /&gt;
            double Ai = 0.675;&lt;br /&gt;
//            double Ar = -0.3;&lt;br /&gt;
//            double Ai = 0.63;&lt;br /&gt;
            Ar = double.Parse(textBox1.Text);//テキストボックスから値を取得&lt;br /&gt;
            Ai = double.Parse(textBox2.Text);&lt;br /&gt;
&lt;br /&gt;
            int Nmax = 500;&lt;br /&gt;
            int Rstep = 3; // 何ピクセルごとに計算するか&lt;br /&gt;
            int Istep = 3;&lt;br /&gt;
&lt;br /&gt;
            Rstep = int.Parse(textBox3.Text);&lt;br /&gt;
            Istep = Rstep;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            for (int x = Xmin; x &amp;lt; Xmax; x = x + Rstep)&lt;br /&gt;
            {&lt;br /&gt;
                for (int y = Ymin; y &amp;lt; Ymax; y = y + Istep)&lt;br /&gt;
                {&lt;br /&gt;
                    Zr = ( x - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Zの座標に変換&lt;br /&gt;
                    Zi = ( y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
                    int n = 0;&lt;br /&gt;
                    while ( Zr * Zr + Zi * Zi &amp;lt; 4 &amp;amp; n &amp;lt; Nmax )&lt;br /&gt;
                    {&lt;br /&gt;
                        newZr = Zr * Zr - Zi * Zi + Ar; // f(z) = X^2 * Aの実数部&lt;br /&gt;
                        newZi = 2 * Zr * Zi + Ai; // f(z) = X^2 * Aの虚数部&lt;br /&gt;
                        Zr = newZr;&lt;br /&gt;
                        Zi = newZi;&lt;br /&gt;
                        n++;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        int dr = 17;&lt;br /&gt;
                        int rr = (n % dr + 1) * 255 / (dr + 1);&lt;br /&gt;
                        int gg = (n % 11 + 1) * 255 / 12;&lt;br /&gt;
                        int bb = (n % 7 + 1) * 255 / 8;&lt;br /&gt;
                        pen.Color = Color.FromArgb(255, rr, gg, 255 - bb);//nの数に応じて色分ける&lt;br /&gt;
                        brush.Color = Color.FromArgb(255, rr, gg, 255 - bb);//nの数に応じて色分ける&lt;br /&gt;
                        g.DrawRectangle(pen, x, y, Rstep, Istep);&lt;br /&gt;
                        g.FillRectangle(brush, x, y, Rstep, Istep);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button2_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.Clear(Color.Black); //描画領域をクリア（黒で塗りつぶす）&lt;br /&gt;
&lt;br /&gt;
            label1.Text = null;&lt;br /&gt;
            label2.Text = null;&lt;br /&gt;
            label3.Text = null;&lt;br /&gt;
            label4.Text = null;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
&lt;br /&gt;
            view2 = true;&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //　以下、マウスイベントによって選択範囲を取得する処理&lt;br /&gt;
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            if (view2 == false) return;&lt;br /&gt;
            // 描画フラグON&lt;br /&gt;
            view = true;&lt;br /&gt;
&lt;br /&gt;
            // Mouseを押した座標を記録&lt;br /&gt;
            MD.X = e.X - Xmax;&lt;br /&gt;
            MD.Y = Ymax - e.Y;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            if (view2 == false) return;&lt;br /&gt;
&lt;br /&gt;
            Point start = new Point();&lt;br /&gt;
            Point end = new Point();&lt;br /&gt;
&lt;br /&gt;
            // Mouseを離した座標を記録&lt;br /&gt;
            MU.X = e.X - Xmax;&lt;br /&gt;
            MU.Y = Ymax - e.Y;&lt;br /&gt;
&lt;br /&gt;
            // 座標から(X,Y)座標を計算&lt;br /&gt;
            GetRegion(MD, MU, ref start, ref end);&lt;br /&gt;
&lt;br /&gt;
            // 領域を描画&lt;br /&gt;
            DrawRegion(start, end);&lt;br /&gt;
&lt;br /&gt;
            // 描画フラグOFF&lt;br /&gt;
            view = false;&lt;br /&gt;
            view2 = false;&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            if (view2 == false) return;&lt;br /&gt;
&lt;br /&gt;
            Point p = new Point();&lt;br /&gt;
&lt;br /&gt;
            p.X = e.X - Xmax;&lt;br /&gt;
            p.Y = Ymax - e.Y;&lt;br /&gt;
&lt;br /&gt;
            // 描画フラグcheck&lt;br /&gt;
            if (view == false)&lt;br /&gt;
            {&lt;br /&gt;
                label1.Text = ( ( p.X - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin ).ToString();&lt;br /&gt;
                label2.Text = ( ( p.Y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin ).ToString();&lt;br /&gt;
&lt;br /&gt;
                label3.Text = null;&lt;br /&gt;
                label4.Text = null;&lt;br /&gt;
&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // カーソルが示している場所の座標を取得&lt;br /&gt;
            label3.Text = ( (p.X - Xmin) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin ).ToString();&lt;br /&gt;
            label4.Text = ( (p.Y - Ymin) * (Imax - Imin) / (Ymax - Ymin) + Imin ).ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void GetRegion(Point p1, Point p2, ref Point start, ref Point end)&lt;br /&gt;
        {&lt;br /&gt;
            start.X = Math.Min(p1.X, p2.X);&lt;br /&gt;
            start.Y = Math.Min(p1.Y, p2.Y);&lt;br /&gt;
&lt;br /&gt;
            end.X = Math.Max(p1.X, p2.X);&lt;br /&gt;
            end.Y = Math.Max(p1.Y, p2.Y);&lt;br /&gt;
&lt;br /&gt;
            if (checkBox1.Checked == true) //選択領域を正方形にする&lt;br /&gt;
            {&lt;br /&gt;
                int min_x_y = Math.Min(Math.Abs(end.X - start.X), Math.Abs(end.Y - start.Y));&lt;br /&gt;
&lt;br /&gt;
                end.X = start.X + min_x_y;&lt;br /&gt;
                end.Y = start.Y + min_x_y;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = ( end.X - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Zの座標に変換&lt;br /&gt;
            Imax2 = ( end.Y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
            Rmin2 = ( start.X - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin;&lt;br /&gt;
            Imin2 = ( start.Y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private int GetLength(int start, int end)&lt;br /&gt;
        {&lt;br /&gt;
            return Math.Abs(start - end);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void DrawRegion(Point start, Point end)&lt;br /&gt;
        {&lt;br /&gt;
            Pen blackPen = new Pen(Color.White);&lt;br /&gt;
            SolidBrush tbrush = new SolidBrush(Color.FromArgb(100,220,220,220));&lt;br /&gt;
&lt;br /&gt;
            // 描画する線を点線に設定&lt;br /&gt;
//            blackPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;&lt;br /&gt;
&lt;br /&gt;
            // 画面を消去&lt;br /&gt;
//            g.Clear(SystemColors.Control);&lt;br /&gt;
&lt;br /&gt;
            // 領域を描画&lt;br /&gt;
            g.DrawRectangle(blackPen, start.X, start.Y, GetLength(start.X, end.X), GetLength(start.Y, end.Y));&lt;br /&gt;
            g.FillRectangle(tbrush, start.X, start.Y, GetLength(start.X, end.X), GetLength(start.Y, end.Y));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button5_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標を初期値に戻す&lt;br /&gt;
            Rmax2 = 0.5;&lt;br /&gt;
            Rmin2 = -0.5;&lt;br /&gt;
            Imax2 = 0.5;&lt;br /&gt;
            Imin2 = -0.5;&lt;br /&gt;
&lt;br /&gt;
            label1.Text = null;&lt;br /&gt;
            label2.Text = null;&lt;br /&gt;
            label3.Text = null;&lt;br /&gt;
            label4.Text = null;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*座標のスケールの拡大、縮小ボタンを付ける&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void button6_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを５倍にする&lt;br /&gt;
            double ratio = 5.0;&lt;br /&gt;
            double R_ave = ( Rmax2 + Rmin2 ) / 2;&lt;br /&gt;
            double R_dif2 = ( Rmax2 - Rmin2 ) / 2;&lt;br /&gt;
            double I_ave = ( Imax2 + Imin2 ) / 2;&lt;br /&gt;
            double I_dif2 = ( Imax2 - Imin2 ) / 2;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = R_ave + R_dif2 * ratio;&lt;br /&gt;
            Rmin2 = R_ave - R_dif2 * ratio;&lt;br /&gt;
            Imax2 = I_ave + I_dif2 * ratio;&lt;br /&gt;
            Imin2 = I_ave - I_dif2 * ratio;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button7_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを５分の１倍にする&lt;br /&gt;
            double ratio = 5.0;&lt;br /&gt;
            double R_ave = (Rmax2 + Rmin2) / 2;&lt;br /&gt;
            double R_dif2 = (Rmax2 - Rmin2) / 2;&lt;br /&gt;
            double I_ave = (Imax2 + Imin2) / 2;&lt;br /&gt;
            double I_dif2 = (Imax2 - Imin2) / 2;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = R_ave + R_dif2 / ratio;&lt;br /&gt;
            Rmin2 = R_ave - R_dif2 / ratio;&lt;br /&gt;
            Imax2 = I_ave + I_dif2 / ratio;&lt;br /&gt;
            Imin2 = I_ave - I_dif2 / ratio;&lt;br /&gt;
            &lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*座標の上下左右へシフトさせるボタンを付ける&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void button8_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを左に0.5スケールシフトする&lt;br /&gt;
            double R_ave = (Rmax2 + Rmin2) * 0.5;&lt;br /&gt;
            double R_dif2 = (Rmax2 - Rmin2) * 0.5;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = Rmax2 - R_dif2;&lt;br /&gt;
            Rmin2 = Rmin2 - R_dif2;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button9_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを右に0.5スケールシフトする&lt;br /&gt;
            double R_ave = (Rmax2 + Rmin2) * 0.5;&lt;br /&gt;
            double R_dif2 = (Rmax2 - Rmin2) * 0.5;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = Rmax2 + R_dif2;&lt;br /&gt;
            Rmin2 = Rmin2 + R_dif2;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button10_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを下に0.5スケールシフトする&lt;br /&gt;
            double I_ave = (Imax2 + Imin2) * 0.5 ;&lt;br /&gt;
            double I_dif2 = (Imax2 - Imin2) * 0.5;&lt;br /&gt;
&lt;br /&gt;
            Imax2 = Imax2 - I_dif2;&lt;br /&gt;
            Imin2 = Imin2 - I_dif2;&lt;br /&gt;
&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button11_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを上に0.5スケールシフトする&lt;br /&gt;
            double I_ave = (Imax2 + Imin2) * 0.5;&lt;br /&gt;
            double I_dif2 = (Imax2 - Imin2) * 0.5;&lt;br /&gt;
&lt;br /&gt;
            Imax2 = Imax2 + I_dif2;&lt;br /&gt;
            Imin2 = Imin2 + I_dif2;&lt;br /&gt;
&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 人間の感覚 ==&lt;br /&gt;
=== アロマアート ===&lt;br /&gt;
嗅覚を利用したアート&lt;br /&gt;
&lt;br /&gt;
[http://w3.media.t-kougei.ac.jp/kuha/asp/asp00kuha/bbs.asp かんたん掲示板]に「香りの特徴」を書いてみよう。&lt;br /&gt;
&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/doc/pclit_manu200510.pdf 香りの印刷]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/doc/aromap20040312.pdf アロマプリンタ]&lt;br /&gt;
*[http://ja.wikipedia.org/wiki/RAMPO 映画RAMPO]&lt;br /&gt;
*ブンマー・モンティエン,呼吸の家&lt;br /&gt;
**彫刻の中に入ってハーブの香りを体感するもの　(東京都現代美術館) http://www.tokyoartbeat.com/tablog/images/ShowMeThai3.jpg&lt;br /&gt;
*アムラックスシアター&lt;br /&gt;
**シーンに合わせた座席の振動・香りつきのシアター（トヨタ・アムラックス）&lt;br /&gt;
&lt;br /&gt;
=== 共感覚 ===&lt;br /&gt;
*[http://www.media.t-kougei.ac.jp/~projectk/color_sound/trial-product/new/ 色彩と調性の関係性についての実験サイト]（久原ゼミの実験企画）&lt;br /&gt;
*[http://ist.ksc.kwansei.ac.jp/~nagata/synesthesia/ 色聴は共感覚]（関西学院理工学部情報科学科の長田典子先生の研究室）&lt;br /&gt;
&lt;br /&gt;
=== ヒーリングアート ===&lt;br /&gt;
;リラックスとリフレッシュ&lt;br /&gt;
:リラックス時には副交感神経が優勢に，興奮状態にある場合は、交感神経が優勢になる。&lt;br /&gt;
:リラックス時にはアルファ波が出る？&lt;br /&gt;
&lt;br /&gt;
;1/f揺らぎ&lt;br /&gt;
*ホワイトノイズ、サイン波、ピンクノイズ(1/f揺らぎ)&lt;br /&gt;
*自然界の音を使用した楽曲 [http://www.media.t-kougei.ac.jp/~projectk/healmusic/ URL]&lt;br /&gt;
* スペクトル&lt;br /&gt;
** EQ(イコライザ)によって，音のスペクトルを加工する。&lt;br /&gt;
** スペクトルとは[[周波数構成]]のこと。ピッチ感のある音は，ピークとなる基本周波数を中心として複数の倍音成分から構成される。&lt;br /&gt;
*** [http://www.cycleof5th.com/products/soundengine/ SoundEngine]や[http://audacity.sourceforge.net/?lang=ja Audacity]でsin波などを生成し，周波数構成を観察。sin波は基本周波数１つのみ。ノコギリ波はsin波の倍数の無限級数。ホワイトノイズはランダムな周波数構成。&lt;br /&gt;
*** 人のボーカル，楽器の音，車のエンジン音のスペクトルを比較してみる。&lt;br /&gt;
;子守唄&lt;br /&gt;
*子守唄の特徴、西洋の子守唄、日本の子守唄&lt;br /&gt;
*子守唄自動作曲プログラム(Max/MSP)[http://www.media.t-kougei.ac.jp/~kuha/doc/sigmus68_suyama_kuhara07.pdf PDF]&lt;br /&gt;
*生理食塩水内レコーディング[http://www.media.t-kougei.ac.jp/kuhalaaa/mdata.php?catego=3&amp;amp;wks_id=230&amp;amp;mode=detail 竹田の子守唄]&lt;br /&gt;
&lt;br /&gt;
;生物的なシステム，生物の癒し効果&lt;br /&gt;
[http://www.kazsh.com/ flash effects] / &lt;br /&gt;
[http://levitated.net/ Levitated  the Exploration of Computation] /&lt;br /&gt;
[http://sodaplay.com/ sodaplay]/ &lt;br /&gt;
[http://www.vectorpark.com/ Vector Park] / &lt;br /&gt;
[http://www.livly.com/ リヴリー・アイランド] / &lt;br /&gt;
[http://electroplankton.com/ エレクトロプランクトン] / &lt;br /&gt;
[http://www.bandai.co.jp/releases/J2004020301.html たまごっちプラス] / &lt;br /&gt;
[http://www.aist.go.jp/pr/expo/contents/paro/paro.html メンタルコミットロボアザラシ型「パロ」] / &lt;br /&gt;
[http://www.necoro.com/home.html 猫型コミュニケーションロボット「ネコロ」] / &lt;br /&gt;
[http://www.nintendo.co.jp/ds/adgj/index.html nintendogs] / &lt;br /&gt;
[http://www.nhk.or.jp/digista/onair/hall_2004.html What is TRUTH?] / &lt;br /&gt;
&lt;br /&gt;
*[http://blossom.media.t-kougei.ac.jp/~kuha/tutorial0/bioart/egg.swf Vector Parkのegg.swf]&lt;br /&gt;
*[http://www.ebiebi.net//F_SAMPLES/clambon/ CLAMBON FARM]&lt;br /&gt;
*[http://intihuatani.usc.edu/cloud/flowing/ flOw]&lt;br /&gt;
*電子ペット Comたま [http://blossom.media.t-kougei.ac.jp/comtama/ URL] / [http://blossom.media.t-kougei.ac.jp/~kuha/doc/genko_comtama.pdf PDF]&lt;br /&gt;
&lt;br /&gt;
== [[脳]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Neural Networks]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Genetic Algorithm]] ==&lt;br /&gt;
&lt;br /&gt;
== Github ==&lt;br /&gt;
共同開発するときに便利。&lt;br /&gt;
&lt;br /&gt;
学内のプロキシー環境で作業する場合、コンソールで&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --global http.proxy proxy-n.t-kougei.ac.jp:8080&lt;br /&gt;
git config --global https.proxy proxy-n.t-kougei.ac.jp:8080&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
とする。&lt;br /&gt;
&lt;br /&gt;
通常のプロキシーのない環境で作業する場合、コンソールで&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --global --unset http.proxy proxy-n.t-kougei.ac.jp:8080&lt;br /&gt;
git config --global --unset https.proxy proxy-n.t-kougei.ac.jp:8080&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
とする。&lt;br /&gt;
&lt;br /&gt;
現在の設定を確認するには、コンソールで、&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
とする。&lt;br /&gt;
&lt;br /&gt;
== リンク ==&lt;br /&gt;
&lt;br /&gt;
http://gushwell.ifdef.jp/&lt;br /&gt;
&lt;br /&gt;
素数のグラフィック&lt;br /&gt;
http://www.datapointed.net/visualizations/math/factorization/animated-diagrams/?infinity&lt;br /&gt;
&lt;br /&gt;
[[Category:授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E7%94%9F%E5%91%BD%E6%83%85%E5%A0%B1%E3%82%A2%E3%83%BC%E3%83%88%E8%AB%96</id>
		<title>生命情報アート論</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E7%94%9F%E5%91%BD%E6%83%85%E5%A0%B1%E3%82%A2%E3%83%BC%E3%83%88%E8%AB%96"/>
				<updated>2026-01-15T10:14:53Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* アロマアート */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
&lt;br /&gt;
*成績評価&lt;br /&gt;
**出席：学生証scan+[http://www.kuhalabo.net/~web/examination/mpaper/min_paper.php?subj_id=3&amp;amp;grade=2 Minutes paper]&lt;br /&gt;
**課題：セルオートマトン課題、再帰呼び出し図形課題、複素平面フラクタル課題&lt;br /&gt;
**小テスト：[http://www.kuhalabo.net/~web/examination/result_highscore.php?subj_id=3 ハイスコア]&lt;br /&gt;
&lt;br /&gt;
;授業概要及び到達目標&lt;br /&gt;
:インタラクティブアートは芸術を基盤として科学や工学を統合する新しい領域である。生物科学に関連した分野として、人工生命、ライフゲーム、フラクタル、オートマトン、遺伝的アルゴリズム、ニューラルネットワークなど応用範囲の広いものが数多く存在する。&lt;br /&gt;
そういった生物に見られる特徴をアートに応用したジェネラティブアートの作品をC++のプログラミングを使用して、実際に作成してみる。&lt;br /&gt;
&lt;br /&gt;
本講義の目標は以下の通り。&lt;br /&gt;
&lt;br /&gt;
# 生物の特徴と生物的なシステムについて理解する。&lt;br /&gt;
# 複雑系システムについて理解し、応用例を作成できる。&lt;br /&gt;
# openFrameworksを使って作品のプログラミングができる。&lt;br /&gt;
&lt;br /&gt;
== アナウンス ==&lt;br /&gt;
&lt;br /&gt;
開発環境として[[openFrameworks for Visual studio]]を使用します。&lt;br /&gt;
&lt;br /&gt;
テキストや開発環境については、以下を参照してください。&lt;br /&gt;
* http://www.kuhalabo.net/kxoops/modules/d3blog/details.php?bid=141&lt;br /&gt;
&lt;br /&gt;
一年生の時にメディアプログラミング演習I程度のプログラミングスキルがあるものとして、授業を進めます。&lt;br /&gt;
もし、プログラミングに不安があるなら、上記テキストを使って、自分で予習や自習をしてください。&lt;br /&gt;
&lt;br /&gt;
== 予定 ==&lt;br /&gt;
;2014年度&lt;br /&gt;
&lt;br /&gt;
# 9/30(火) ガイダンス, 生物と情報とアート，openFrameworksプログラミング演習&lt;br /&gt;
# 10/7(火) openFrameworks C++プログラミング&lt;br /&gt;
# 10/14(火) 幾何学図形の描画&lt;br /&gt;
# 10/21(火) ランダムウォーク&lt;br /&gt;
# 10/28(火) セルオートマトン&lt;br /&gt;
# 11/4(火) セルオートマトン&lt;br /&gt;
# 11/11(火) セルオートマトン&lt;br /&gt;
# 11/18(火) セルオートマトン&lt;br /&gt;
# 11/25(火) セルオートマトン&lt;br /&gt;
# 12/2(火) フラクタルと再帰呼び出し&lt;br /&gt;
# 12/9(火) 課題制作日&lt;br /&gt;
# 12/16(火) フラクタルと再帰呼び出し&lt;br /&gt;
# 1/6(火) 予備演習日（出席はとりません）&lt;br /&gt;
# 1/20(火) 遺伝的アルゴリズム&lt;br /&gt;
# 1/28(火) 小テスト&lt;br /&gt;
&lt;br /&gt;
== 生物と情報とアート ==&lt;br /&gt;
* 生物とは? 生物の特徴とは？&lt;br /&gt;
** 例：小石と貝殻&lt;br /&gt;
** * [http://blossom.media.t-kougei.ac.jp/~kuha/easybbs/easy_bbs4klb2.php 簡単BBS]に「生物と無生物の違いは何か？」説明してみよう。&lt;br /&gt;
* ゲノムのDNAマップ [http://www.ncbi.nlm.nih.gov/mapview/ NCBI Map Viewer]&lt;br /&gt;
* [http://www.kuhalabo.net/kxoops/modules/d3blog/details.php?bid=5 ヒト一人を再生するのに必要な情報量は？]&lt;br /&gt;
&lt;br /&gt;
== メモ　==&lt;br /&gt;
Visual Studioのショートカット&lt;br /&gt;
&lt;br /&gt;
* Ctrl-K Ctrl-C コメントアウト&lt;br /&gt;
* Ctrl-K Ctrl-U コメントアウト解除&lt;br /&gt;
* Ctrl-K Ctrl-F インデントをそろえる&lt;br /&gt;
&lt;br /&gt;
[http://yoppa.org/ クリエイティブ・コーダー]&lt;br /&gt;
&lt;br /&gt;
== 複雑系 ==&lt;br /&gt;
=== セルオートマトン ===&lt;br /&gt;
&lt;br /&gt;
*配布資料[http://www.kuhalabo.net/~kuha/tutorial0/bioart/cellautomaton2007.pdf PDF]&lt;br /&gt;
*[http://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%83%AB%E3%83%94%E3%83%B3%E3%82%B9%E3%82%AD%E3%83%BC%E3%81%AE%E3%82%AE%E3%83%A3%E3%82%B9%E3%82%B1%E3%83%83%E3%83%88 シェルピンスキーのガスケット]&lt;br /&gt;
** [http://falconnet.peddie.org/students/2007/nburoojy/projects/cellular/ 256種類の１次元セルオートマトンの画像] / &lt;br /&gt;
*[http://ja.wikipedia.org/wiki/%E3%82%BB%E3%83%AB%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3 セルオートマトン]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Elementary_cellular_automaton Elementary cellular automaton]&lt;br /&gt;
&lt;br /&gt;
=== ライフゲーム ===&lt;br /&gt;
[http://www.kuhalabo.net/~kuha/tutorial0/bioart/Lifegame.exe ライフゲームの例] / &lt;br /&gt;
[http://homepage3.nifty.com/izushi/LifeGame/ ライフゲーム入門] / &lt;br /&gt;
[http://www.kuhalabo.net/~kuha/tutorial0/bioart/cagallary/ セルオートマトン・ギャラリー] /&lt;br /&gt;
&lt;br /&gt;
;セルオートマトン音楽&lt;br /&gt;
[http://tones.wolfram.com/generate/ WolframTones]/ &lt;br /&gt;
[http://tamw.atari-users.net/camus.htm CAMUS]/ &lt;br /&gt;
[http://www.glitchds.com/ Glitch DS]/ &lt;br /&gt;
[http://www.kuhalabo.net/lifegorch/ Life Game Orchestra] / &lt;br /&gt;
&lt;br /&gt;
;ギャラリー&lt;br /&gt;
[http://www.collidoscope.com/modernca/ Modern Cellular Automata]/ &lt;br /&gt;
[http://prenzl.sourceforge.net/gallery/category.php CArt gallery]/ &lt;br /&gt;
[http://www.upl.cs.wisc.edu/~oblio/gnarly.html Cellular Automata Art]/ &lt;br /&gt;
[http://akinao.at.infoseek.co.jp/ascii/index.html ASCII Art Cell Automaton]/ &lt;br /&gt;
&lt;br /&gt;
;参考&lt;br /&gt;
[http://ja.wikipedia.org/wiki/%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AF%E3%83%BC%E3%83%AB%E3%83%89 ワイヤワールド] /&lt;br /&gt;
&lt;br /&gt;
=== 人工生命 ===&lt;br /&gt;
[http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%82%B0%E3%83%88%E3%83%B3%E3%81%AE%E3%82%A2%E3%83%AA ラングトンのアリ] / &lt;br /&gt;
[http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%82%B0%E3%83%88%E3%83%B3%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%97 ラングトンのループ] /&lt;br /&gt;
[http://necsi.org/postdocs/sayama/sdsr/java/ 自己増殖ループ] / &lt;br /&gt;
[http://www.red3d.com/cwr/boids/ Reynolds Boid] /&lt;br /&gt;
&lt;br /&gt;
http://www.local-guru.net/blog/2010/8/19/openframeworks-boid-demo&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/tado/6603347&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Birds Algorhythm Craig Reynolds&lt;br /&gt;
http://processing.org/examples/flocking.html&lt;br /&gt;
&lt;br /&gt;
== [[C Sharp Programming]] ==&lt;br /&gt;
&lt;br /&gt;
== フラクタル ==&lt;br /&gt;
古代ギリシャからあるユークリッド幾何学と20世紀のフラクタル幾何学の比較&lt;br /&gt;
&lt;br /&gt;
;考察&lt;br /&gt;
:古代エジプト人は3:4:5の辺を持つ三角形で直角が得られることを知っていた．ピラミッドなどの巨大建造物．&lt;br /&gt;
:三平方の定理を発見したピタゴラスはどこがすごいか？&lt;br /&gt;
&lt;br /&gt;
[http://www.gaia.h.kyoto-u.ac.jp/~fractal/ フラクタル日除け]&lt;br /&gt;
&lt;br /&gt;
== 自己相似系 ==&lt;br /&gt;
=== 再帰的呼出しによる樹木の描画 ===&lt;br /&gt;
*'''再帰的( recursive )呼び出し'''とは，サブルーチンや関数が，自分自身を呼び出すことをいう。樹木は，枝の１つを取り出して拡大しても，元の枝と同じ形（相似形）をしている。これは，同じサブルーチンで枝を描画しているからである。&lt;br /&gt;
&lt;br /&gt;
*再帰的呼出し的なCollaborate Flash Animation：[http://www.zoomquilt.org/ zoomquilt] ([http://www.media.t-kougei.ac.jp/~kuha/tutorial0/bioart/zoomquilt.swf swf])&lt;br /&gt;
*例：実行ファイル，ソース，Taneクラス &lt;br /&gt;
&lt;br /&gt;
=== C#による実装 ===&lt;br /&gt;
==== 新しいクラスの定義 ====&lt;br /&gt;
*「プロジェクト」メニューから「クラスの追加」で新しいクラス名を入力する。クラスの定義の中にメソッドを記述する。&lt;br /&gt;
* 注意&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
をTane.csの冒頭に追加&lt;br /&gt;
&lt;br /&gt;
==== 樹木の描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Bintree.jpg]]&lt;br /&gt;
[[ファイル:Bintree2.JPG]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
線分(x1,y1)-(x2,y2)が与えられたら、(x2,y2)の先端に(x3,y3), (x4,y4)を取り、線分(x2,y2)-(x3,y3)と線分(x2,y2)-(x4,y4)を描画する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    class Tane&lt;br /&gt;
    {&lt;br /&gt;
        public void Eda(int n, double x1, double y1, double x2, double y2, double angle, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4;&lt;br /&gt;
            double s = Math.Sin(angle * Math.PI / 180.0);&lt;br /&gt;
            double c = Math.Cos(angle * Math.PI / 180.0);&lt;br /&gt;
            double dx = 0.7 * (x2 - x1);&lt;br /&gt;
            double dy = 0.7 * (y2 - y1);&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = x2 + dx * c - dy * s;&lt;br /&gt;
                y3 = y2 + dx * s + dy * c;&lt;br /&gt;
                x4 = x2 + dx * c + dy * s;&lt;br /&gt;
                y4 = y2 - dx * s + dy * c;&lt;br /&gt;
                // 枝を描画する&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                g.DrawLine(pen, (float)x2, (float)y2, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x2, (float)y2, (float)x4, (float)y4);&lt;br /&gt;
                //子の再起呼び出し&lt;br /&gt;
                Eda(n - 1, x2, y2, x3, y3, angle, g, pen);&lt;br /&gt;
                Eda(n - 1, x2, y2, x4, y4, angle, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;樹木描画ボタンクリックの中身&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 10;  //枝の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width / 2; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width / 2; //開始位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.8; //開始位置 y座標&lt;br /&gt;
            double angle = 30.0; //子供の枝の角度の差分&lt;br /&gt;
            tane.Eda(n, x0, y0, x1, y1, angle, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== コッホ図形の描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Koch.jpg]]&lt;br /&gt;
[[ファイル:Koch2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Koch(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4, x5, y5;&lt;br /&gt;
            double s = Math.Sin(Math.PI / 3.0);&lt;br /&gt;
            double c = Math.Cos(Math.PI / 3.0);&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = (2 * x1 + x2) / 3.0;&lt;br /&gt;
                y3 = (2 * y1 + y2) / 3.0;&lt;br /&gt;
                x4 = (x1 + 2 * x2) / 3.0;&lt;br /&gt;
                y4 = (y1 + 2 * y2) / 3.0;&lt;br /&gt;
                x5 = x3 + (x4 - x3) * c + (y4 - y3) * s;&lt;br /&gt;
                y5 = y3 - (x4 - x3) * s + (y4 - y3) * c;&lt;br /&gt;
                // ジェネレータを描画する&lt;br /&gt;
                pen.Color = Color.Black;&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x4, (float)y4);&lt;br /&gt;
                pen.Color = Color.Green;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x5, (float)y5);&lt;br /&gt;
                g.DrawLine(pen, (float)x5, (float)y5, (float)x4, (float)y4);&lt;br /&gt;
                g.DrawLine(pen, (float)x4, (float)y4, (float)x2, (float)y2);&lt;br /&gt;
                // 子の再起呼び出し&lt;br /&gt;
                Koch(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Koch(n - 1, x3, y3, x5, y5, g, pen);&lt;br /&gt;
                Koch(n - 1, x5, y5, x4, y4, g, pen);&lt;br /&gt;
                Koch(n - 1, x4, y4, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;コッホ図形描画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            // マウス位置へ直線を描画する&lt;br /&gt;
            int n = 4;  //子の世代数&lt;br /&gt;
            double x0 = 0; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.6 ; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.6; //終了位置 y座標&lt;br /&gt;
            tane.Koch(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ドラゴン図形の描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Dragon.jpg]]&lt;br /&gt;
[[ファイル:Dragon2.jpg]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Dragon(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4, x5, y5;&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = 0.5 * ( x1 + x2);&lt;br /&gt;
                y3 = 0.5 * ( y1 + y2);&lt;br /&gt;
                x4 = 0.5 * (x1 + x3 - y1 + y3);&lt;br /&gt;
                y4 = 0.5 * (x1 - x3 + y1 + y3);&lt;br /&gt;
                x5 = 0.5 * (x2 + x3 - y2 + y3);&lt;br /&gt;
                y5 = 0.5 * (x2 - x3 + y2 + y3);&lt;br /&gt;
&lt;br /&gt;
                // 枝を描画する&lt;br /&gt;
                pen.Color = Color.Black;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x2, (float)y2);&lt;br /&gt;
                pen.Color = Color.Green;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x4, (float)y4);&lt;br /&gt;
                g.DrawLine(pen, (float)x4, (float)y4, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x5, (float)y5);&lt;br /&gt;
                g.DrawLine(pen, (float)x5, (float)y5, (float)x2, (float)y2);&lt;br /&gt;
                Dragon(n - 1, x1, y1, x4, y4, g, pen);&lt;br /&gt;
                Dragon(n - 1, x4, y4, x3, y3, g, pen);&lt;br /&gt;
                Dragon(n - 1, x3, y3, x5, y5, g, pen);&lt;br /&gt;
                Dragon(n - 1, x5, y5, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;ドラゴン図形描画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;  //子の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width * 0.1; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.5; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width * 0.9; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.5; //終了位置 y座標&lt;br /&gt;
            tane.Dragon(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== シダ葉の描画 ====&lt;br /&gt;
;ドラゴン図形の変化形&lt;br /&gt;
* ドラゴン図形で使用した(x1,y1), (x2,y2), (x3,y3), (x4,y4), (x5,y5)を使う&lt;br /&gt;
* 直線(x1,y1)-(x2,y2), 直線(x1,y1)-(x4,y4),  直線(x3,y3)-(x5,y5)を基本図形とする。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Sida2.JPG]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Fern(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4, x5, y5;&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = ( x1 + x2 ) / 2.0;&lt;br /&gt;
                y3 = ( y1 + y2 ) / 2.0;&lt;br /&gt;
                x4 = ( x1 + x3 - y1 + y3) / 2.0;&lt;br /&gt;
                y4 = ( x1 - x3 + y1 + y3) / 2.0;&lt;br /&gt;
                x5 = ( x2 + x3 - y2 + y3) / 2.0;&lt;br /&gt;
                y5 = ( x2 - x3 + y2 + y3) / 2.0;&lt;br /&gt;
                // 枝を描画する&lt;br /&gt;
                pen.Color = Color.Green;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x5, (float)y5);&lt;br /&gt;
                Fern(n - 1, x1, y1, x4, y4, g, pen);&lt;br /&gt;
                Fern(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Fern(n - 1, x3, y3, x2, y2, g, pen);&lt;br /&gt;
                Fern(n - 1, x3, y3, x5, y5, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;シダ葉描画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;  //子の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width * 0.1; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.5; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width * 0.9; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.5; //終了位置 y座標&lt;br /&gt;
            tane.Fern(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Cカーブの描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Ccurve.jpg]]&lt;br /&gt;
[[ファイル:Ccurve2.jpg]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Ccurve(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3;&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = 0.5 * (x1 + x2 - y1 + y2);&lt;br /&gt;
                y3 = 0.5 * (x1 - x2 + y1 + y2);&lt;br /&gt;
                // 枝を描画する&lt;br /&gt;
                pen.Color = Color.Black;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                pen.Color = Color.Green;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x3, (float)y3);&lt;br /&gt;
                g.DrawLine(pen, (float)x3, (float)y3, (float)x2, (float)y2);&lt;br /&gt;
                Ccurve(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Ccurve(n - 1, x3, y3, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Cカーブ画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 12;  //子の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width * 0.25; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.75; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width * 0.75; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.75; //終了位置 y座標&lt;br /&gt;
            tane.Ccurve(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 内分点と回転によるカスタムジェネレータの描画 ====&lt;br /&gt;
&lt;br /&gt;
[[ファイル:gene01.JPG]]&lt;br /&gt;
[[ファイル:gene012.JPG]]&lt;br /&gt;
&lt;br /&gt;
;Taneクラスのメソッド&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        public void Gene01(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4;&lt;br /&gt;
            double p = 2.0;&lt;br /&gt;
            double q = 3.0;&lt;br /&gt;
            double th = -30.0;&lt;br /&gt;
            double s = Math.Sin(th * Math.PI / 180.0);&lt;br /&gt;
            double c = Math.Cos(th * Math.PI / 180.0);&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = (q * x1 + p * x2) / (p + q);&lt;br /&gt;
                y3 = (q * y1 + p * y2) / (p + q);&lt;br /&gt;
                x4 = x1 + (x3 - x1) * c - (y3 - y1) * s;&lt;br /&gt;
                y4 = y1 + (x3 - x1) * s + (y3 - y1) * c;&lt;br /&gt;
                pen.Color = Color.Yellow;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x4, (float)y4);&lt;br /&gt;
                Gene01(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Gene01(n - 1, x1, y1, x4, y4, g, pen);&lt;br /&gt;
                Gene01(n - 1, x3, y3, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;カスタムジェネレータ描画ボタンクリックの中身&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;  //子の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width * 0.1; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height * 0.5; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width * 0.9; //終了位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.5; //終了位置 y座標&lt;br /&gt;
            tane.Gene01(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;マウスドラッグで始点と終点を決めて描く&lt;br /&gt;
*プロパティウィンドウにイベント(稲妻のアイコン)のリストを表示させ、MouseDownイベントをダブルクリックすると、MouseDownのメソッドが自動生成されます。&lt;br /&gt;
*label1,label2に始点の座標を、label3, label4に終点の座標を入れる&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            label1.Text = e.X.ToString();&lt;br /&gt;
            label2.Text = e.Y.ToString();&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;&lt;br /&gt;
            double x0 = double.Parse(label1.Text);&lt;br /&gt;
            double y0 = double.Parse(label2.Text);&lt;br /&gt;
            double x1 = double.Parse(label3.Text);&lt;br /&gt;
            double y1 = double.Parse(label4.Text);&lt;br /&gt;
&lt;br /&gt;
            tane.Gene01(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            label3.Text = e.X.ToString();&lt;br /&gt;
            label4.Text = e.Y.ToString();&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
p,q,thをクラスのメンバー変数にして、外部からランダムに与える。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    class Tane&lt;br /&gt;
    {&lt;br /&gt;
        public double p { get; set; }&lt;br /&gt;
        public double q { get; set; }&lt;br /&gt;
        public double th { get; set; }&lt;br /&gt;
&lt;br /&gt;
        public void Gene01(int n, double x1, double y1, double x2, double y2, Graphics g, Pen pen)&lt;br /&gt;
        {&lt;br /&gt;
            double x3, y3, x4, y4;&lt;br /&gt;
            double s = Math.Sin(th * Math.PI / 180.0);&lt;br /&gt;
            double c = Math.Cos(th * Math.PI / 180.0);&lt;br /&gt;
&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                x3 = (q * x1 + p * x2) / (p + q);&lt;br /&gt;
                y3 = (q * y1 + p * y2) / (p + q);&lt;br /&gt;
                x4 = x1 + (x3 - x1) * c - (y3 - y1) * s;&lt;br /&gt;
                y4 = y1 + (x3 - x1) * s + (y3 - y1) * c;&lt;br /&gt;
                pen.Color = Color.Yellow;&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x2, (float)y2);&lt;br /&gt;
                g.DrawLine(pen, (float)x1, (float)y1, (float)x4, (float)y4);&lt;br /&gt;
                Gene01(n - 1, x1, y1, x3, y3, g, pen);&lt;br /&gt;
                Gene01(n - 1, x1, y1, x4, y4, g, pen);&lt;br /&gt;
                Gene01(n - 1, x3, y3, x2, y2, g, pen);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 2);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
            Random rnd = new Random();&lt;br /&gt;
&lt;br /&gt;
            int n = 7;&lt;br /&gt;
            double x0 = double.Parse(label1.Text);&lt;br /&gt;
            double y0 = double.Parse(label2.Text);&lt;br /&gt;
            double x1 = double.Parse(label3.Text);&lt;br /&gt;
            double y1 = double.Parse(label4.Text);&lt;br /&gt;
&lt;br /&gt;
            tane.p = rnd.Next(2, 6);&lt;br /&gt;
            tane.q = rnd.Next(3, 7);&lt;br /&gt;
            tane.th = rnd.Next(10, 90);&lt;br /&gt;
&lt;br /&gt;
            tane.Gene01(n, x0, y0, x1, y1, g, pen);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== タイマーを使用した樹木のアニメーション ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void button3_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            timer1.Enabled = true;&lt;br /&gt;
            timer1.Start();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button4_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            timer1.Stop();&lt;br /&gt;
            timer1.Enabled = false;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        public int cnt; //タイマー用カウンタ&lt;br /&gt;
        private void timer1_Tick(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            Pen pen = new Pen(Color.Green, 1);&lt;br /&gt;
            Tane tane = new Tane();&lt;br /&gt;
&lt;br /&gt;
            g.Clear(Color.Black);&lt;br /&gt;
&lt;br /&gt;
            cnt++;  //タイマー用カウンタのカウントアップ&lt;br /&gt;
            int n = 10;  //枝の世代数&lt;br /&gt;
            double x0 = pictureBox1.Width / 2; //開始位置 x座標&lt;br /&gt;
            double y0 = pictureBox1.Height; //開始位置 y座標&lt;br /&gt;
            double x1 = pictureBox1.Width / 2; //開始位置 x座標&lt;br /&gt;
            double y1 = pictureBox1.Height * 0.9 - cnt * 2; //開始位置 y座標&lt;br /&gt;
            double angle = 30.0; //子供の枝の角度の変化の差分&lt;br /&gt;
            double a_rate = angle + cnt * 2;&lt;br /&gt;
            tane.Eda(n, x0, y0, x1, y1, a_rate, g, pen);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 複素平面フラクタル ==&lt;br /&gt;
*[http://blossom.media.t-kougei.ac.jp/~kuha/tutorial0/bioart/9_complex.pdf 配布資料PDF]&lt;br /&gt;
*[http://blossom.media.t-kougei.ac.jp/~kuha/tutorial0/bioart/mandelv3.exe 複複素平面フラクタル図形描画ソフトウェア for Windows]&lt;br /&gt;
**注）comdlg32.ocxがない場合は，[http://www.microsoft.com/downloads/ja-jp/details.aspx?displaylang=ja&amp;amp;FamilyID=7B9BA261-7A9C-43E7-9117-F673077FFB3C ここ]からRuntimeファイル群をダウンロードしてください。&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=0fKBhvDjuy0 Powers of Ten]&lt;br /&gt;
&lt;br /&gt;
=== C#の座標変換 ===&lt;br /&gt;
;座標原点&lt;br /&gt;
原点を移動するには、TranslateTransformメソッドを使う。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          g.TranslateTransform(x1,y1); //座標原点を(x1,y1)に移動&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;座標の回転&lt;br /&gt;
座標軸をth度(degree)だけ回転するには、RotateTransformメソッドを使う。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
　          g.RotateTransform(th);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;座標軸のスケール、方向&lt;br /&gt;
座標スケールを変換するには、ScaleTransformメソッドを使う。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            g.ScaleTransform(scx,scy);  //X軸をscx倍、Y軸をscy倍する&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
X軸は右、Y軸は下が正方向なので、座標軸方向を反転するには、次のとおり。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
　 　　　　　g.ScaleTransform(1,-1);   //Y軸方向の反転&lt;br /&gt;
　 　　　　　g.ScaleTransform(-1,1);  //X軸方向の反転&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 複素平面フラクタルの描画 ===&lt;br /&gt;
;自己平方の描画プログラム&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2); //原点を中央に移動&lt;br /&gt;
            g.ScaleTransform(1, -1); //Y軸の向きを反転&lt;br /&gt;
            Pen pen = new Pen(Color.White);&lt;br /&gt;
&lt;br /&gt;
            int Xmax = pictureBox1.Width / 2;&lt;br /&gt;
            int Xmin = -pictureBox1.Width / 2;&lt;br /&gt;
            int Ymax = pictureBox1.Height / 2;&lt;br /&gt;
            int Ymin = -pictureBox1.Height / 2;&lt;br /&gt;
            double Rmax = 0.5;&lt;br /&gt;
            double Rmin = -0.5;&lt;br /&gt;
            double Imax = 0.5;&lt;br /&gt;
            double Imin = -0.5;&lt;br /&gt;
            double Zr, newZr;&lt;br /&gt;
            double Zi, newZi;&lt;br /&gt;
            double Ar = -0.2;&lt;br /&gt;
            double Ai = 0.675;&lt;br /&gt;
            int Nmax = 100;&lt;br /&gt;
            int Rstep = 1; // 何ピクセルごとに計算するか&lt;br /&gt;
            int Istep = 1;&lt;br /&gt;
&lt;br /&gt;
            for (int x = Xmin; x &amp;lt; Xmax; x = x + Rstep)&lt;br /&gt;
            {&lt;br /&gt;
                for (int y = Ymin; y &amp;lt; Ymax; y = y + Istep)&lt;br /&gt;
                {&lt;br /&gt;
                    Zr = ( x - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Zの座標に変換&lt;br /&gt;
                    Zi = ( y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
                    int n = 0;&lt;br /&gt;
                    while ( Zr * Zr + Zi * Zi &amp;lt; 4 &amp;amp; n &amp;lt; Nmax )&lt;br /&gt;
                    {&lt;br /&gt;
                        newZr = Zr * Zr - Zi * Zi + Ar; // f(z) = X^2 * Aの実数部&lt;br /&gt;
                        newZi = 2 * Zr * Zi + Ai; // f(z) = X^2 * Aの虚数部&lt;br /&gt;
                        Zr = newZr;&lt;br /&gt;
                        Zi = newZi;&lt;br /&gt;
                        n++;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        pen.Color = Color.FromArgb(255, n * 255 / Nmax, 0, 0);//nの数に応じて色分ける&lt;br /&gt;
                        g.DrawRectangle(pen, x, y, 1, 1);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;マンデルブロー集合の描画プログラム&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2); //原点を中央に移動&lt;br /&gt;
            g.ScaleTransform(1, -1); //Y軸の向きを反転&lt;br /&gt;
            Pen pen = new Pen(Color.White);&lt;br /&gt;
&lt;br /&gt;
            int Xmax = pictureBox1.Width / 2;&lt;br /&gt;
            int Xmin = -pictureBox1.Width / 2;&lt;br /&gt;
            int Ymax = pictureBox1.Height / 2;&lt;br /&gt;
            int Ymin = -pictureBox1.Height / 2;&lt;br /&gt;
            double Rmax = 1.5;&lt;br /&gt;
            double Rmin = -1.5;&lt;br /&gt;
            double Imax = 1.5;&lt;br /&gt;
            double Imin = -1.5;&lt;br /&gt;
            double Zr, newZr;&lt;br /&gt;
            double Zi, newZi;&lt;br /&gt;
            double Cr;&lt;br /&gt;
            double Ci;&lt;br /&gt;
            int Nmax = 50;&lt;br /&gt;
            int Rstep = 1; // 何ピクセルごとに計算するか&lt;br /&gt;
            int Istep = 1;&lt;br /&gt;
&lt;br /&gt;
            for (int x = Xmin; x &amp;lt; Xmax; x = x + Rstep)&lt;br /&gt;
            {&lt;br /&gt;
                for (int y = Ymin; y &amp;lt; Ymax; y = y + Istep)&lt;br /&gt;
                {&lt;br /&gt;
                    Cr = ( x - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Cの座標に変換&lt;br /&gt;
                    Ci = ( y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
                    int n = 0;&lt;br /&gt;
                    Zr = 0.0;&lt;br /&gt;
                    Zi = 0.0;&lt;br /&gt;
                    while (Zr * Zr + Zi * Zi &amp;lt; 4 &amp;amp; n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        newZr = Zr * Zr - Zi * Zi + Cr; // f(z) = X^2 * Cの実数部&lt;br /&gt;
                        newZi = 2 * Zr * Zi + Ci; // f(z) = X^2 * Cの虚数部&lt;br /&gt;
                        Zr = newZr;&lt;br /&gt;
                        Zi = newZi;&lt;br /&gt;
                        n++;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        pen.Color = Color.FromArgb(255, 0, n * 255 / Nmax, 0);//nの数に応じて色分ける&lt;br /&gt;
                        g.DrawRectangle(pen, x, y, 1, 1);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Julia集合&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2); //原点を中央に移動&lt;br /&gt;
            g.ScaleTransform(1, -1); //Y軸の向きを反転&lt;br /&gt;
            Pen pen = new Pen(Color.White);&lt;br /&gt;
&lt;br /&gt;
            int Xmax = pictureBox1.Width / 2;&lt;br /&gt;
            int Xmin = -pictureBox1.Width / 2;&lt;br /&gt;
            int Ymax = pictureBox1.Height / 2;&lt;br /&gt;
            int Ymin = -pictureBox1.Height / 2;&lt;br /&gt;
            double Rmax = 1.5;&lt;br /&gt;
            double Rmin = -1.5;&lt;br /&gt;
            double Imax = 1.5;&lt;br /&gt;
            double Imin = -1.5;&lt;br /&gt;
            double Xr, Xr2, XrXi23, newXr;&lt;br /&gt;
            double Xi, Xi2, newXi;&lt;br /&gt;
            double Dr;&lt;br /&gt;
            double Di;&lt;br /&gt;
            int Nmax = 50;&lt;br /&gt;
            int Rstep = 1; // 何ピクセルごとに計算するか&lt;br /&gt;
            int Istep = 1;&lt;br /&gt;
&lt;br /&gt;
            for (int x = Xmin; x &amp;lt; Xmax; x = x + Rstep)&lt;br /&gt;
            {&lt;br /&gt;
                for (int y = Ymin; y &amp;lt; Ymax; y = y + Istep)&lt;br /&gt;
                {&lt;br /&gt;
                    Xr = ( x - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Cの座標に変換&lt;br /&gt;
                    Xi = ( y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
                    int n = 0;&lt;br /&gt;
                    Dr = 1.0;&lt;br /&gt;
                    Di = 1.0;&lt;br /&gt;
                    while (Dr + Di &amp;gt; 0.001 &amp;amp; n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        Xr2 = Xr * Xr;&lt;br /&gt;
                        Xi2 = Xi * Xi;&lt;br /&gt;
                        XrXi23 = (Xr2 + Xi2) * (Xr2 + Xi2) / 3;&lt;br /&gt;
                        newXr = Xr * 2 / 3 + (Xr2 - Xi2) / XrXi23; // f(z) = X^2 * Cの実数部&lt;br /&gt;
                        newXi = Xi * 2 / 3 - 2 * Xr * Xi / XrXi23; // f(z) = X^2 * Cの虚数部&lt;br /&gt;
                        Dr = Math.Abs(newXr - Xr);&lt;br /&gt;
                        Di = Math.Abs(newXi - Xi);&lt;br /&gt;
                        Xr = newXr;&lt;br /&gt;
                        Xi = newXi;&lt;br /&gt;
                        n++;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        int rr = n * 255 / Nmax;&lt;br /&gt;
                        int gg = 0;&lt;br /&gt;
                        int bb = 0;&lt;br /&gt;
                        pen.Color = Color.FromArgb(255, rr, gg, bb);//nの数に応じて色分ける&lt;br /&gt;
                        g.DrawRectangle(pen, x, y, 1, 1);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 配色の工夫 ===&lt;br /&gt;
&lt;br /&gt;
個々の色の差をハッキリさせる。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    int rr = (n % 13 + 1) * 255 / 14;&lt;br /&gt;
    int gg = (n % 11 + 1) * 255 / 12;&lt;br /&gt;
    int bb = (n % 7 + 1) * 255 / 8;&lt;br /&gt;
    pen.Color = Color.FromArgb(255, rr, gg, bb);&lt;br /&gt;
    g.DrawRectangle(pen, x, y, Rstep, Istep);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ピクセルの目を粗くした時に、矩形の中身を塗りつぶす。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    pen.Color = Color.FromArgb(255, rr, gg, bb);&lt;br /&gt;
    brush.Color = Color.FromArgb(255, rr, gg, bb);&lt;br /&gt;
    g.DrawRectangle(pen, x, y, Rstep, Istep);&lt;br /&gt;
    g.FillRectangle(brush, x, y, Rstep, Istep);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ar, Ai, Rstep, Istepなどをテキストボックスから入力する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            Ar = double.Parse(textBox1.Text);&lt;br /&gt;
            Ai = double.Parse(textBox2.Text);&lt;br /&gt;
&lt;br /&gt;
            Rstep = int.Parse(textBox3.Text);&lt;br /&gt;
            Istep = Rstep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== いろいろカスタマイズ ===&lt;br /&gt;
&lt;br /&gt;
*複素平面の座標のスケールをラベルに表示する。&lt;br /&gt;
*マウスドラッグで、新しく描画する範囲を選択する。&lt;br /&gt;
*選択領域を正方形にするかどうかを、チェックボックスで指定する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        //　グローバルに宣言&lt;br /&gt;
        Point MD = new Point();//マウスダウンの位置&lt;br /&gt;
        Point MU = new Point(); //マウスアップの位置&lt;br /&gt;
&lt;br /&gt;
        bool view = false;//選択領域を描画するかどうかの判定&lt;br /&gt;
        bool view2 = false;&lt;br /&gt;
        Graphics g;&lt;br /&gt;
        int Xmax;&lt;br /&gt;
        int Xmin;&lt;br /&gt;
        int Ymax;&lt;br /&gt;
        int Ymin;&lt;br /&gt;
&lt;br /&gt;
        double Rmax;&lt;br /&gt;
        double Rmin;&lt;br /&gt;
        double Imax;&lt;br /&gt;
        double Imin;&lt;br /&gt;
&lt;br /&gt;
        double Rmax2;//マウスドラッグで指定した新しい範囲&lt;br /&gt;
        double Rmin2;&lt;br /&gt;
        double Imax2;&lt;br /&gt;
        double Imin2;&lt;br /&gt;
&lt;br /&gt;
        public Form1()&lt;br /&gt;
        {&lt;br /&gt;
            InitializeComponent();&lt;br /&gt;
            g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2); //原点を中央に移動&lt;br /&gt;
            g.ScaleTransform(1, -1); //Y軸の向きを反転&lt;br /&gt;
            view2 = true;&lt;br /&gt;
&lt;br /&gt;
            Xmax = pictureBox1.Width / 2;&lt;br /&gt;
            Xmin = -pictureBox1.Width / 2;&lt;br /&gt;
            Ymax = pictureBox1.Height / 2;&lt;br /&gt;
            Ymin = -pictureBox1.Height / 2;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = 0.5;&lt;br /&gt;
            Rmin2 = -0.5;&lt;br /&gt;
            Imax2 = 0.5;&lt;br /&gt;
            Imin2 = -0.5;&lt;br /&gt;
            Rmax = Rmax2;&lt;br /&gt;
            Rmin = Rmin2;&lt;br /&gt;
            Imax = Imax2;&lt;br /&gt;
            Imin = Imin2;&lt;br /&gt;
&lt;br /&gt;
            label1.Text = null;&lt;br /&gt;
            label2.Text = null;&lt;br /&gt;
            label3.Text = null;&lt;br /&gt;
            label4.Text = null;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button1_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Pen pen = new Pen(Color.White);&lt;br /&gt;
            SolidBrush brush = new SolidBrush(Color.FromArgb(90, 200, 200, 200));&lt;br /&gt;
&lt;br /&gt;
            g.Clear(Color.Black); //描画領域をクリア（黒で塗りつぶす）&lt;br /&gt;
&lt;br /&gt;
            Rmax = Rmax2;&lt;br /&gt;
            Rmin = Rmin2;&lt;br /&gt;
            Imax = Imax2;&lt;br /&gt;
            Imin = Imin2;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
&lt;br /&gt;
            label5.Refresh();&lt;br /&gt;
            label6.Refresh();&lt;br /&gt;
            label7.Refresh();&lt;br /&gt;
            label8.Refresh();&lt;br /&gt;
            view2 = true;&lt;br /&gt;
&lt;br /&gt;
            double Zr, newZr;&lt;br /&gt;
            double Zi, newZi;&lt;br /&gt;
            double Ar = -0.2;&lt;br /&gt;
            double Ai = 0.675;&lt;br /&gt;
//            double Ar = -0.3;&lt;br /&gt;
//            double Ai = 0.63;&lt;br /&gt;
            Ar = double.Parse(textBox1.Text);//テキストボックスから値を取得&lt;br /&gt;
            Ai = double.Parse(textBox2.Text);&lt;br /&gt;
&lt;br /&gt;
            int Nmax = 500;&lt;br /&gt;
            int Rstep = 3; // 何ピクセルごとに計算するか&lt;br /&gt;
            int Istep = 3;&lt;br /&gt;
&lt;br /&gt;
            Rstep = int.Parse(textBox3.Text);&lt;br /&gt;
            Istep = Rstep;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            for (int x = Xmin; x &amp;lt; Xmax; x = x + Rstep)&lt;br /&gt;
            {&lt;br /&gt;
                for (int y = Ymin; y &amp;lt; Ymax; y = y + Istep)&lt;br /&gt;
                {&lt;br /&gt;
                    Zr = ( x - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Zの座標に変換&lt;br /&gt;
                    Zi = ( y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
                    int n = 0;&lt;br /&gt;
                    while ( Zr * Zr + Zi * Zi &amp;lt; 4 &amp;amp; n &amp;lt; Nmax )&lt;br /&gt;
                    {&lt;br /&gt;
                        newZr = Zr * Zr - Zi * Zi + Ar; // f(z) = X^2 * Aの実数部&lt;br /&gt;
                        newZi = 2 * Zr * Zi + Ai; // f(z) = X^2 * Aの虚数部&lt;br /&gt;
                        Zr = newZr;&lt;br /&gt;
                        Zi = newZi;&lt;br /&gt;
                        n++;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (n &amp;lt; Nmax)&lt;br /&gt;
                    {&lt;br /&gt;
                        int dr = 17;&lt;br /&gt;
                        int rr = (n % dr + 1) * 255 / (dr + 1);&lt;br /&gt;
                        int gg = (n % 11 + 1) * 255 / 12;&lt;br /&gt;
                        int bb = (n % 7 + 1) * 255 / 8;&lt;br /&gt;
                        pen.Color = Color.FromArgb(255, rr, gg, 255 - bb);//nの数に応じて色分ける&lt;br /&gt;
                        brush.Color = Color.FromArgb(255, rr, gg, 255 - bb);//nの数に応じて色分ける&lt;br /&gt;
                        g.DrawRectangle(pen, x, y, Rstep, Istep);&lt;br /&gt;
                        g.FillRectangle(brush, x, y, Rstep, Istep);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button2_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            Graphics g = pictureBox1.CreateGraphics();&lt;br /&gt;
            g.Clear(Color.Black); //描画領域をクリア（黒で塗りつぶす）&lt;br /&gt;
&lt;br /&gt;
            label1.Text = null;&lt;br /&gt;
            label2.Text = null;&lt;br /&gt;
            label3.Text = null;&lt;br /&gt;
            label4.Text = null;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
&lt;br /&gt;
            view2 = true;&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //　以下、マウスイベントによって選択範囲を取得する処理&lt;br /&gt;
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            if (view2 == false) return;&lt;br /&gt;
            // 描画フラグON&lt;br /&gt;
            view = true;&lt;br /&gt;
&lt;br /&gt;
            // Mouseを押した座標を記録&lt;br /&gt;
            MD.X = e.X - Xmax;&lt;br /&gt;
            MD.Y = Ymax - e.Y;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            if (view2 == false) return;&lt;br /&gt;
&lt;br /&gt;
            Point start = new Point();&lt;br /&gt;
            Point end = new Point();&lt;br /&gt;
&lt;br /&gt;
            // Mouseを離した座標を記録&lt;br /&gt;
            MU.X = e.X - Xmax;&lt;br /&gt;
            MU.Y = Ymax - e.Y;&lt;br /&gt;
&lt;br /&gt;
            // 座標から(X,Y)座標を計算&lt;br /&gt;
            GetRegion(MD, MU, ref start, ref end);&lt;br /&gt;
&lt;br /&gt;
            // 領域を描画&lt;br /&gt;
            DrawRegion(start, end);&lt;br /&gt;
&lt;br /&gt;
            // 描画フラグOFF&lt;br /&gt;
            view = false;&lt;br /&gt;
            view2 = false;&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            if (view2 == false) return;&lt;br /&gt;
&lt;br /&gt;
            Point p = new Point();&lt;br /&gt;
&lt;br /&gt;
            p.X = e.X - Xmax;&lt;br /&gt;
            p.Y = Ymax - e.Y;&lt;br /&gt;
&lt;br /&gt;
            // 描画フラグcheck&lt;br /&gt;
            if (view == false)&lt;br /&gt;
            {&lt;br /&gt;
                label1.Text = ( ( p.X - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin ).ToString();&lt;br /&gt;
                label2.Text = ( ( p.Y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin ).ToString();&lt;br /&gt;
&lt;br /&gt;
                label3.Text = null;&lt;br /&gt;
                label4.Text = null;&lt;br /&gt;
&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // カーソルが示している場所の座標を取得&lt;br /&gt;
            label3.Text = ( (p.X - Xmin) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin ).ToString();&lt;br /&gt;
            label4.Text = ( (p.Y - Ymin) * (Imax - Imin) / (Ymax - Ymin) + Imin ).ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void GetRegion(Point p1, Point p2, ref Point start, ref Point end)&lt;br /&gt;
        {&lt;br /&gt;
            start.X = Math.Min(p1.X, p2.X);&lt;br /&gt;
            start.Y = Math.Min(p1.Y, p2.Y);&lt;br /&gt;
&lt;br /&gt;
            end.X = Math.Max(p1.X, p2.X);&lt;br /&gt;
            end.Y = Math.Max(p1.Y, p2.Y);&lt;br /&gt;
&lt;br /&gt;
            if (checkBox1.Checked == true) //選択領域を正方形にする&lt;br /&gt;
            {&lt;br /&gt;
                int min_x_y = Math.Min(Math.Abs(end.X - start.X), Math.Abs(end.Y - start.Y));&lt;br /&gt;
&lt;br /&gt;
                end.X = start.X + min_x_y;&lt;br /&gt;
                end.Y = start.Y + min_x_y;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = ( end.X - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin; // pictureBoxの座標を複素平面Zの座標に変換&lt;br /&gt;
            Imax2 = ( end.Y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
            Rmin2 = ( start.X - Xmin ) * (Rmax - Rmin) / (Xmax - Xmin) + Rmin;&lt;br /&gt;
            Imin2 = ( start.Y - Ymin ) * (Imax - Imin) / (Ymax - Ymin) + Imin;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private int GetLength(int start, int end)&lt;br /&gt;
        {&lt;br /&gt;
            return Math.Abs(start - end);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void DrawRegion(Point start, Point end)&lt;br /&gt;
        {&lt;br /&gt;
            Pen blackPen = new Pen(Color.White);&lt;br /&gt;
            SolidBrush tbrush = new SolidBrush(Color.FromArgb(100,220,220,220));&lt;br /&gt;
&lt;br /&gt;
            // 描画する線を点線に設定&lt;br /&gt;
//            blackPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;&lt;br /&gt;
&lt;br /&gt;
            // 画面を消去&lt;br /&gt;
//            g.Clear(SystemColors.Control);&lt;br /&gt;
&lt;br /&gt;
            // 領域を描画&lt;br /&gt;
            g.DrawRectangle(blackPen, start.X, start.Y, GetLength(start.X, end.X), GetLength(start.Y, end.Y));&lt;br /&gt;
            g.FillRectangle(tbrush, start.X, start.Y, GetLength(start.X, end.X), GetLength(start.Y, end.Y));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button5_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標を初期値に戻す&lt;br /&gt;
            Rmax2 = 0.5;&lt;br /&gt;
            Rmin2 = -0.5;&lt;br /&gt;
            Imax2 = 0.5;&lt;br /&gt;
            Imin2 = -0.5;&lt;br /&gt;
&lt;br /&gt;
            label1.Text = null;&lt;br /&gt;
            label2.Text = null;&lt;br /&gt;
            label3.Text = null;&lt;br /&gt;
            label4.Text = null;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*座標のスケールの拡大、縮小ボタンを付ける&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void button6_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを５倍にする&lt;br /&gt;
            double ratio = 5.0;&lt;br /&gt;
            double R_ave = ( Rmax2 + Rmin2 ) / 2;&lt;br /&gt;
            double R_dif2 = ( Rmax2 - Rmin2 ) / 2;&lt;br /&gt;
            double I_ave = ( Imax2 + Imin2 ) / 2;&lt;br /&gt;
            double I_dif2 = ( Imax2 - Imin2 ) / 2;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = R_ave + R_dif2 * ratio;&lt;br /&gt;
            Rmin2 = R_ave - R_dif2 * ratio;&lt;br /&gt;
            Imax2 = I_ave + I_dif2 * ratio;&lt;br /&gt;
            Imin2 = I_ave - I_dif2 * ratio;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button7_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを５分の１倍にする&lt;br /&gt;
            double ratio = 5.0;&lt;br /&gt;
            double R_ave = (Rmax2 + Rmin2) / 2;&lt;br /&gt;
            double R_dif2 = (Rmax2 - Rmin2) / 2;&lt;br /&gt;
            double I_ave = (Imax2 + Imin2) / 2;&lt;br /&gt;
            double I_dif2 = (Imax2 - Imin2) / 2;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = R_ave + R_dif2 / ratio;&lt;br /&gt;
            Rmin2 = R_ave - R_dif2 / ratio;&lt;br /&gt;
            Imax2 = I_ave + I_dif2 / ratio;&lt;br /&gt;
            Imin2 = I_ave - I_dif2 / ratio;&lt;br /&gt;
            &lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*座標の上下左右へシフトさせるボタンを付ける&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        private void button8_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを左に0.5スケールシフトする&lt;br /&gt;
            double R_ave = (Rmax2 + Rmin2) * 0.5;&lt;br /&gt;
            double R_dif2 = (Rmax2 - Rmin2) * 0.5;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = Rmax2 - R_dif2;&lt;br /&gt;
            Rmin2 = Rmin2 - R_dif2;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button9_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを右に0.5スケールシフトする&lt;br /&gt;
            double R_ave = (Rmax2 + Rmin2) * 0.5;&lt;br /&gt;
            double R_dif2 = (Rmax2 - Rmin2) * 0.5;&lt;br /&gt;
&lt;br /&gt;
            Rmax2 = Rmax2 + R_dif2;&lt;br /&gt;
            Rmin2 = Rmin2 + R_dif2;&lt;br /&gt;
&lt;br /&gt;
            label5.Text = Rmax2.ToString();&lt;br /&gt;
            label6.Text = Rmin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button10_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを下に0.5スケールシフトする&lt;br /&gt;
            double I_ave = (Imax2 + Imin2) * 0.5 ;&lt;br /&gt;
            double I_dif2 = (Imax2 - Imin2) * 0.5;&lt;br /&gt;
&lt;br /&gt;
            Imax2 = Imax2 - I_dif2;&lt;br /&gt;
            Imin2 = Imin2 - I_dif2;&lt;br /&gt;
&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void button11_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            // 座標のスケールを上に0.5スケールシフトする&lt;br /&gt;
            double I_ave = (Imax2 + Imin2) * 0.5;&lt;br /&gt;
            double I_dif2 = (Imax2 - Imin2) * 0.5;&lt;br /&gt;
&lt;br /&gt;
            Imax2 = Imax2 + I_dif2;&lt;br /&gt;
            Imin2 = Imin2 + I_dif2;&lt;br /&gt;
&lt;br /&gt;
            label7.Text = Imax2.ToString();&lt;br /&gt;
            label8.Text = Imin2.ToString();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 人間の感覚 ==&lt;br /&gt;
=== アロマアート ===&lt;br /&gt;
嗅覚を利用したアート&lt;br /&gt;
&lt;br /&gt;
[http://w3.media.t-kougei.ac.jp/kuha/asp/asp00kuha/bbs.asp かんたん掲示板]に「香りの特徴」を書いてみよう。&lt;br /&gt;
&lt;br /&gt;
*[http://www.media.t-kougei.ac.jp/~kuha/doc/pclit_manu200510.pdf 香りの印刷]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/doc/aromap20040312.pdf アロマプリンタ]&lt;br /&gt;
*[http://ja.wikipedia.org/wiki/RAMPO 映画RAMPO]&lt;br /&gt;
*ブンマー・モンティエン,呼吸の家&lt;br /&gt;
**彫刻の中に入ってハーブの香りを体感するもの　(東京都現代美術館) http://www.tokyoartbeat.com/tablog/images/ShowMeThai3.jpg&lt;br /&gt;
*アムラックスシアター&lt;br /&gt;
**シーンに合わせた座席の振動・香りつきのシアター（トヨタ・アムラックス）&lt;br /&gt;
&lt;br /&gt;
=== 共感覚 ===&lt;br /&gt;
*[http://www.media.t-kougei.ac.jp/~projectk/color_sound/trial-product/new/ 色彩と調性の関係性についての実験サイト]（久原ゼミの実験企画）&lt;br /&gt;
*[http://ist.ksc.kwansei.ac.jp/~nagata/synesthesia/ 色聴は共感覚]（関西学院理工学部情報科学科の長田典子先生の研究室）&lt;br /&gt;
&lt;br /&gt;
=== ヒーリングアート ===&lt;br /&gt;
;リラックスとリフレッシュ&lt;br /&gt;
:リラックス時には副交感神経が優勢に，興奮状態にある場合は、交感神経が優勢になる。&lt;br /&gt;
:リラックス時にはアルファ波が出る？&lt;br /&gt;
&lt;br /&gt;
;1/f揺らぎ&lt;br /&gt;
*ホワイトノイズ、サイン波、ピンクノイズ(1/f揺らぎ)&lt;br /&gt;
*自然界の音を使用した楽曲 [http://www.media.t-kougei.ac.jp/~projectk/healmusic/ URL]&lt;br /&gt;
* スペクトル&lt;br /&gt;
** EQ(イコライザ)によって，音のスペクトルを加工する。&lt;br /&gt;
** スペクトルとは[[周波数構成]]のこと。ピッチ感のある音は，ピークとなる基本周波数を中心として複数の倍音成分から構成される。&lt;br /&gt;
*** [http://www.cycleof5th.com/products/soundengine/ SoundEngine]や[http://audacity.sourceforge.net/?lang=ja Audacity]でsin波などを生成し，周波数構成を観察。sin波は基本周波数１つのみ。ノコギリ波はsin波の倍数の無限級数。ホワイトノイズはランダムな周波数構成。&lt;br /&gt;
*** 人のボーカル，楽器の音，車のエンジン音のスペクトルを比較してみる。&lt;br /&gt;
;子守唄&lt;br /&gt;
*子守唄の特徴、西洋の子守唄、日本の子守唄&lt;br /&gt;
*子守唄自動作曲プログラム(Max/MSP)[http://www.media.t-kougei.ac.jp/~kuha/doc/sigmus68_suyama_kuhara07.pdf PDF]&lt;br /&gt;
*生理食塩水内レコーディング[http://www.media.t-kougei.ac.jp/kuhalaaa/mdata.php?catego=3&amp;amp;wks_id=230&amp;amp;mode=detail 竹田の子守唄]&lt;br /&gt;
&lt;br /&gt;
;生物的なシステム，生物の癒し効果&lt;br /&gt;
[http://www.kazsh.com/ flash effects] / &lt;br /&gt;
[http://levitated.net/ Levitated  the Exploration of Computation] /&lt;br /&gt;
[http://sodaplay.com/ sodaplay]/ &lt;br /&gt;
[http://www.vectorpark.com/ Vector Park] / &lt;br /&gt;
[http://www.livly.com/ リヴリー・アイランド] / &lt;br /&gt;
[http://electroplankton.com/ エレクトロプランクトン] / &lt;br /&gt;
[http://www.bandai.co.jp/releases/J2004020301.html たまごっちプラス] / &lt;br /&gt;
[http://www.aist.go.jp/pr/expo/contents/paro/paro.html メンタルコミットロボアザラシ型「パロ」] / &lt;br /&gt;
[http://www.necoro.com/home.html 猫型コミュニケーションロボット「ネコロ」] / &lt;br /&gt;
[http://www.nintendo.co.jp/ds/adgj/index.html nintendogs] / &lt;br /&gt;
[http://www.nhk.or.jp/digista/onair/hall_2004.html What is TRUTH?] / &lt;br /&gt;
&lt;br /&gt;
*[http://blossom.media.t-kougei.ac.jp/~kuha/tutorial0/bioart/egg.swf Vector Parkのegg.swf]&lt;br /&gt;
*[http://www.ebiebi.net//F_SAMPLES/clambon/ CLAMBON FARM]&lt;br /&gt;
*[http://intihuatani.usc.edu/cloud/flowing/ flOw]&lt;br /&gt;
*電子ペット Comたま [http://blossom.media.t-kougei.ac.jp/comtama/ URL] / [http://blossom.media.t-kougei.ac.jp/~kuha/doc/genko_comtama.pdf PDF]&lt;br /&gt;
&lt;br /&gt;
== [[脳]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Neural Networks]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Genetic Algorithm]] ==&lt;br /&gt;
&lt;br /&gt;
== Github ==&lt;br /&gt;
共同開発するときに便利。&lt;br /&gt;
&lt;br /&gt;
学内のプロキシー環境で作業する場合、コンソールで&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --global http.proxy proxy-n.t-kougei.ac.jp:8080&lt;br /&gt;
git config --global https.proxy proxy-n.t-kougei.ac.jp:8080&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
とする。&lt;br /&gt;
&lt;br /&gt;
通常のプロキシーのない環境で作業する場合、コンソールで&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --global --unset http.proxy proxy-n.t-kougei.ac.jp:8080&lt;br /&gt;
git config --global --unset https.proxy proxy-n.t-kougei.ac.jp:8080&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
とする。&lt;br /&gt;
&lt;br /&gt;
現在の設定を確認するには、コンソールで、&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
とする。&lt;br /&gt;
&lt;br /&gt;
== リンク ==&lt;br /&gt;
&lt;br /&gt;
http://gushwell.ifdef.jp/&lt;br /&gt;
&lt;br /&gt;
素数のグラフィック&lt;br /&gt;
http://www.datapointed.net/visualizations/math/factorization/animated-diagrams/?infinity&lt;br /&gt;
&lt;br /&gt;
[[Category:授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%82%89%E3%81%9B%E3%82%93</id>
		<title>らせん</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%82%89%E3%81%9B%E3%82%93"/>
				<updated>2026-01-06T07:55:47Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* フェルマーらせん */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;自然界のらせん(渦巻き)&lt;br /&gt;
*巻貝の貝殻&lt;br /&gt;
*台風&lt;br /&gt;
*銀河の星の渦&lt;br /&gt;
*ひまわりの種の配列&lt;br /&gt;
&lt;br /&gt;
;座標系&lt;br /&gt;
* 直交座標と極座標　[https://www.try-it.jp/chapters-7149/sections-7215/lessons-7222/ 参考サイト]&lt;br /&gt;
** 三角関数 [https://www.try-it.jp/chapters-6150/sections-6151/lessons-6160/ 参考サイト]&lt;br /&gt;
&lt;br /&gt;
;3種のらせん&lt;br /&gt;
:アルキメデスらせん&lt;br /&gt;
:フェルマーらせん&lt;br /&gt;
:対数らせん&lt;br /&gt;
&lt;br /&gt;
;らせんの描画&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float theta = 0;&lt;br /&gt;
float STEP = 2 * PI * 0.01; //曲線の精度（2*PI = 360度）を100等分&lt;br /&gt;
void setup(){&lt;br /&gt;
  size(500, 500);&lt;br /&gt;
}&lt;br /&gt;
void draw(){&lt;br /&gt;
  translate(width / 2, height / 2);  //描画ウィンドウの中心に移動&lt;br /&gt;
  line(rad(theta) * cos(theta), rad(theta) * sin(theta),&lt;br /&gt;
       rad(theta + STEP) * cos(theta + STEP), rad(theta + STEP) * sin(theta + STEP));&lt;br /&gt;
  theta += STEP;&lt;br /&gt;
}&lt;br /&gt;
float rad(float t){ //動径を定める関数&lt;br /&gt;
  float r = 5 * t;  //アルキメデスらせん&lt;br /&gt;
  //float r = 20 * sqrt(t); //フェルマーらせん&lt;br /&gt;
  // float r = pow(1.1, t); //対数らせん&lt;br /&gt;
  return(r);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* PIは円周率で3.14159265…&lt;br /&gt;
* rad() 角度を度数法から弧度法に変換する。[https://www.try-it.jp/chapters-6673/sections-6687/lessons-6688/ 参考サイト] &lt;br /&gt;
* pow(x,a) べき乗の計算 xのa乗&lt;br /&gt;
* sqrt() は平方根&lt;br /&gt;
&lt;br /&gt;
;自己相似な対数らせん&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float STEP = 2 * PI * 0.01; //曲線の精度&lt;br /&gt;
void setup(){&lt;br /&gt;
  size(500, 500);&lt;br /&gt;
  colorMode(HSB, 1);&lt;br /&gt;
}&lt;br /&gt;
void draw(){&lt;br /&gt;
  background(1,0,1);&lt;br /&gt;
  drawLogSpiral();  //対数らせんを描画&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void drawLogSpiral(){&lt;br /&gt;
  float theta = 0;&lt;br /&gt;
  float scalar = pow(10, (float) mouseX / width) * height / 2;&lt;br /&gt;
  //マウスのx座標によって1～10倍に拡大する&lt;br /&gt;
  translate(width / 2, height / 2);  //描画ウィンドウの中心に移動&lt;br /&gt;
  for(int i = 0; i &amp;lt; 2000; i++){&lt;br /&gt;
    line(scalar * rad(theta) * cos(theta),&lt;br /&gt;
      scalar * rad(theta) * sin(theta),&lt;br /&gt;
      scalar * rad(theta + STEP) * cos(theta + STEP),&lt;br /&gt;
      scalar * rad(theta + STEP) * sin(theta + STEP));&lt;br /&gt;
    theta -= STEP;  //反時計回りに進むほど動径は減少する&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
float rad(float t){ //動径を定める関数&lt;br /&gt;
  float r = pow(1.1, t);&lt;br /&gt;
  return(r);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* mouseX マウスのX座標&lt;br /&gt;
&lt;br /&gt;
=== 再帰的な描画と対数らせん ===&lt;br /&gt;
&lt;br /&gt;
* ベクトル操作：(x,y)の2つの値を1まとめに扱う。位置や運動を整理して扱うことができる。[https://funacchi.qrunch.io/entries/ZlygjgxrGamwt2fz 参考サイト](閉鎖されました)&lt;br /&gt;
** [https://processing.org/reference/PVector.html PVector Reference]&lt;br /&gt;
** [https://processing.org/tutorials/pvector/ PVector Tutorial]&lt;br /&gt;
** [https://www.try-it.jp/chapters-5458/sections-5459/ 高校数学Bベクトル]&lt;br /&gt;
&lt;br /&gt;
正方形の中に正方形を再帰的に描く&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PVector[] vec;  //PVector型の配列を宣言&lt;br /&gt;
float gap = 0.01;  //内接する正方形のずれ&lt;br /&gt;
void setup(){&lt;br /&gt;
  size(500, 500);&lt;br /&gt;
  vec = new PVector[4]; //正方形の4つの頂点をベクトルとして生成&lt;br /&gt;
  vec[0] = new PVector(0, 0); //ウィンドウ左上の角&lt;br /&gt;
  vec[1] = new PVector(width, 0); //ウィンドウ右上の角&lt;br /&gt;
  vec[2] = new PVector(width, height);  //ウィンドウ右下の角&lt;br /&gt;
  vec[3] = new PVector(0, height);  //ウィンドウ左下の角&lt;br /&gt;
}&lt;br /&gt;
void draw(){&lt;br /&gt;
  drawSquare(vec);  //4つのベクトルを頂点とする四角形を描画&lt;br /&gt;
  vec = getVector(vec); //ベクトルをgapの分だけずらす&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void drawSquare(PVector[] v){ &lt;br /&gt;
  for(int i = 0; i &amp;lt; 4; i++){&lt;br /&gt;
    line(v[i].x, v[i].y, v[(i + 1) % 4].x, v[(i + 1) % 4].y);&lt;br /&gt;
    //頂点v[i]と頂点v[i+1]のx座標とy座標の値を取りだし，線分を描く&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PVector[] getVector(PVector[] vec){&lt;br /&gt;
  PVector[] nextVec = new PVector[4];&lt;br /&gt;
  for(int i = 0; i &amp;lt; 4; i++){&lt;br /&gt;
    PVector dir = PVector.sub(vec[(i + 1) % 4], vec[i]);  //2頂点間の方向ベクトル&lt;br /&gt;
    dir.mult(gap);  //ずれの分を方向ベクトルにかける&lt;br /&gt;
    nextVec[i] = PVector.add(vec[i], dir); //元の頂点の位置ベクトルをずらして新たなベクトルを作る&lt;br /&gt;
  }&lt;br /&gt;
  return(nextVec);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* %は割り算のあまり。9%4=1 (9を4で割るとあまり1)&lt;br /&gt;
*頂点は0,1,2,3なので、3の次は、3+1=4になるが、4で割った余りを考えると4%4=0となる。あまり（剰余系）を使うと、0,1,2,3,0,1,2,3…の循環を表せる。&lt;br /&gt;
* v[i].xはベクトルv[i]のx座標&lt;br /&gt;
* v[i].yはベクトルv[i]のy座標&lt;br /&gt;
* .add(a,b)はベクトルの足し算&lt;br /&gt;
* .sub(a,b)はベクトルの引き算&lt;br /&gt;
* .mult(a)はベクトルの掛け算&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void mouseClicked(){&lt;br /&gt;
  background(255);&lt;br /&gt;
  gap = random(1) / 2;&lt;br /&gt;
  println(&amp;quot;gap =&amp;quot;, gap);&lt;br /&gt;
  vec[0] = new PVector(0, 0);&lt;br /&gt;
  vec[1] = new PVector(width, 0);&lt;br /&gt;
  vec[2] = new PVector(width, height);&lt;br /&gt;
  vec[3] = new PVector(0, height);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;多角形に拡張する。&lt;br /&gt;
* PVector [https://www.processing.org/reference/PVector_fromAngle_.html fromAngle] : 指定した角度（ラジアン）の傾きを持つ単位ベクトル（大きさ１）を返す。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PVector[] vec;  //PVector型の配列を宣言&lt;br /&gt;
float gap = 0.1;  //内接する正多角形のずれ&lt;br /&gt;
int gon = 8;  //正多角形の頂点の数&lt;br /&gt;
void setup(){&lt;br /&gt;
  size(500, 500);&lt;br /&gt;
  vec = new PVector[gon];&lt;br /&gt;
  for(int i = 0; i &amp;lt; gon; i++){ //正多角形の頂点の位置ベクトル&lt;br /&gt;
    vec[i] = PVector.fromAngle(2 * i * PI / gon);&lt;br /&gt;
    vec[i].mult(width / 2);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
void draw(){&lt;br /&gt;
  translate(width / 2, height / 2); //描画ウィンドウの中心に移動&lt;br /&gt;
  drawPolygon(vec);&lt;br /&gt;
  vec = getVector(vec);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void drawPolygon(PVector[] v){&lt;br /&gt;
  for(int i = 0; i &amp;lt; gon; i++){&lt;br /&gt;
    line(v[i].x, v[i].y, v[(i + 1) % gon].x, v[(i + 1) % gon].y);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PVector[] getVector(PVector[] v){&lt;br /&gt;
  PVector[] nextVec = new PVector[gon];&lt;br /&gt;
  for(int i = 0; i &amp;lt; gon; i++){&lt;br /&gt;
    PVector dir = PVector.sub(v[(i + 1) % gon], v[i]);&lt;br /&gt;
    dir.mult(gap);&lt;br /&gt;
    nextVec[i] = PVector.add(v[i], dir);&lt;br /&gt;
  }&lt;br /&gt;
  return nextVec;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void mouseClicked(){&lt;br /&gt;
  gap = random(1) / 2;&lt;br /&gt;
  gon = int(random(4, 16));&lt;br /&gt;
  background(255);&lt;br /&gt;
  vec = new PVector[gon];&lt;br /&gt;
  for(int i = 0; i &amp;lt; gon; i++){ //正多角形の頂点の位置ベクトル&lt;br /&gt;
    vec[i] = PVector.fromAngle(2 * i * PI / gon);&lt;br /&gt;
    vec[i].mult(width / 2);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== フェルマーらせん ===&lt;br /&gt;
&lt;br /&gt;
;離散的らせん&lt;br /&gt;
&lt;br /&gt;
*回転角&lt;br /&gt;
** 有理数&lt;br /&gt;
*** 1/2,1/3,1/5,1/10,1/20,1/40 &lt;br /&gt;
*** /61 &lt;br /&gt;
*** / 72&lt;br /&gt;
*** / 17&lt;br /&gt;
*** / 305&lt;br /&gt;
*** / 109&lt;br /&gt;
*** / 360&lt;br /&gt;
*** 17/55&lt;br /&gt;
** 無理数&lt;br /&gt;
*** sqrt(5)&lt;br /&gt;
*** 黄金比 (1+√5)/2&lt;br /&gt;
*** 円周率 PI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int itr = 0;  //描画の繰り返し回数&lt;br /&gt;
float scalar = 5; //拡大倍率&lt;br /&gt;
float rotation;&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(500, 500);&lt;br /&gt;
  background(255);  //背景を白くする&lt;br /&gt;
  rotation = 17.0 / 55;&lt;br /&gt;
//  rotation = sqrt(5);&lt;br /&gt;
//  rotation = (1 + sqrt(5)) / 2;&lt;br /&gt;
}&lt;br /&gt;
void draw() {&lt;br /&gt;
  translate(width / 2, height / 2);  //描画ウィンドウの中心に移動&lt;br /&gt;
  fill(0);  //点を黒く塗る&lt;br /&gt;
  drawFermatSpiral(rotation);  //引数を回転角とするフェルマーらせんの描画&lt;br /&gt;
  itr++;&lt;br /&gt;
}&lt;br /&gt;
void drawFermatSpiral(float rot){&lt;br /&gt;
  float theta = 2 * PI * itr * rot; //回転角&lt;br /&gt;
  PVector v = PVector.fromAngle(theta);&lt;br /&gt;
  v.mult(scalar * sqrt(itr));&lt;br /&gt;
  ellipse(v.x, v.y, scalar, scalar); //点を描画&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
複数の離散的らせん&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int itr = 0;  //描画の繰り返し回数&lt;br /&gt;
float scalar = 5; //拡大倍率&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(500, 500);&lt;br /&gt;
  background(255);&lt;br /&gt;
}&lt;br /&gt;
void draw() {&lt;br /&gt;
  translate(width / 2, height / 2);  //描画ウィンドウの中心に移動&lt;br /&gt;
&lt;br /&gt;
  noStroke();&lt;br /&gt;
  fill(255, 0, 0, 127);  //点を赤く塗る&lt;br /&gt;
  drawFermatSpiral(4.0 / 17);&lt;br /&gt;
  fill(0, 0, 255, 127);  //点を青く塗る&lt;br /&gt;
  drawFermatSpiral(17.0 / 72);&lt;br /&gt;
  fill(0, 255, 0, 127);  //点を緑に塗る&lt;br /&gt;
  drawFermatSpiral(72.0 / 305);&lt;br /&gt;
  itr++;&lt;br /&gt;
}&lt;br /&gt;
void drawFermatSpiral(float rot){&lt;br /&gt;
  float theta = 2 * PI * itr * rot; //回転角&lt;br /&gt;
  PVector v = PVector.fromAngle(theta);&lt;br /&gt;
  v.mult(scalar * sqrt(itr));&lt;br /&gt;
  ellipse(v.x, v.y, scalar, scalar); //点を描画&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== リンク ==&lt;br /&gt;
&lt;br /&gt;
[[スケーラブルアート論]]&lt;br /&gt;
&lt;br /&gt;
[[Category:授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E4%B9%85%E5%8E%9F%E7%A0%94%E7%A9%B6%E5%AE%A4</id>
		<title>久原研究室</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E4%B9%85%E5%8E%9F%E7%A0%94%E7%A9%B6%E5%AE%A4"/>
				<updated>2025-10-20T04:34:37Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* リンク */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.kuhalabo.net/~kuha/dokuwiki/doku.php 久原研究室のオフィシャルサイト]&lt;br /&gt;
&lt;br /&gt;
== リンク ==&lt;br /&gt;
&lt;br /&gt;
* https://note.com/kuhalabo&lt;br /&gt;
*[http://www.kuhalabo.net/kxoops/ ゼミkuhaL@boX]&lt;br /&gt;
*[http://www.kuhalabo.net/mng/ kuhaL@BO Archive ]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/tutorial0/ 久原授業旧チュートリアル]&lt;br /&gt;
*[http://www.nime.org/ NIME]&lt;br /&gt;
** http://www.eecs.umich.edu/nime2012&lt;br /&gt;
**[http://www.educ.dab.uts.edu.au/nime/ NIME2010]&lt;br /&gt;
**[http://www.nime2009.org/ NIME2009]&lt;br /&gt;
*[http://www.sigmus.jp/ 音楽情報科学研究会]&lt;br /&gt;
*[http://www.art-science.org/ 芸術科学会]&lt;br /&gt;
*[http://ocw.u-tokyo.ac.jp/ UT OpenCourseWare]&lt;br /&gt;
*[http://www.maxobjects.com/ Max External objects]&lt;br /&gt;
*[https://ccrma.stanford.edu/ CCRMA]&lt;br /&gt;
*[http://cnmat.berkeley.edu/ CNMAT]&lt;br /&gt;
*[http://events.berkeley.edu/ UC Berkeley Events]&lt;br /&gt;
*[http://www.media.mit.edu/ MIT Media lab]&lt;br /&gt;
&lt;br /&gt;
https://note.com/kuhalabo&lt;br /&gt;
&lt;br /&gt;
http://www.otoginosato.com/&lt;br /&gt;
&lt;br /&gt;
[http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/downloads Apple Developer Conection]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[サウンドスタジオ]] /&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E4%B9%85%E5%8E%9F%E7%A0%94%E7%A9%B6%E5%AE%A4</id>
		<title>久原研究室</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E4%B9%85%E5%8E%9F%E7%A0%94%E7%A9%B6%E5%AE%A4"/>
				<updated>2025-10-15T12:12:20Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* リンク */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.kuhalabo.net/~kuha/dokuwiki/doku.php 久原研究室のオフィシャルサイト]&lt;br /&gt;
&lt;br /&gt;
== リンク ==&lt;br /&gt;
*[http://www.kuhalabo.net/kxoops/ ゼミkuhaL@boX]&lt;br /&gt;
*[http://www.kuhalabo.net/mng/ kuhaL@BO Archive ]&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/tutorial0/ 久原授業旧チュートリアル]&lt;br /&gt;
*[http://www.nime.org/ NIME]&lt;br /&gt;
** http://www.eecs.umich.edu/nime2012&lt;br /&gt;
**[http://www.educ.dab.uts.edu.au/nime/ NIME2010]&lt;br /&gt;
**[http://www.nime2009.org/ NIME2009]&lt;br /&gt;
*[http://www.sigmus.jp/ 音楽情報科学研究会]&lt;br /&gt;
*[http://www.art-science.org/ 芸術科学会]&lt;br /&gt;
*[http://ocw.u-tokyo.ac.jp/ UT OpenCourseWare]&lt;br /&gt;
*[http://www.maxobjects.com/ Max External objects]&lt;br /&gt;
*[https://ccrma.stanford.edu/ CCRMA]&lt;br /&gt;
*[http://cnmat.berkeley.edu/ CNMAT]&lt;br /&gt;
*[http://events.berkeley.edu/ UC Berkeley Events]&lt;br /&gt;
*[http://www.media.mit.edu/ MIT Media lab]&lt;br /&gt;
&lt;br /&gt;
https://note.com/kuhalabo&lt;br /&gt;
&lt;br /&gt;
http://www.otoginosato.com/&lt;br /&gt;
&lt;br /&gt;
[http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/downloads Apple Developer Conection]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[サウンドスタジオ]] /&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8"/>
				<updated>2025-10-14T08:00:59Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* その他 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[:Category:授業|授業]] ==&lt;br /&gt;
&lt;br /&gt;
[[コンピュータリテラシーA]]&lt;br /&gt;
&lt;br /&gt;
[[作曲演習]]&lt;br /&gt;
&lt;br /&gt;
[[スケーラブルアート論]]&lt;br /&gt;
&lt;br /&gt;
知性と感性を学ぶ([[Study on Intelligence and Sensibility]]9&lt;br /&gt;
&lt;br /&gt;
カラーサイエンス＆アート([[Color Sciense and Art]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ジェネラティブアート論]] | [[生命情報アート論]]&lt;br /&gt;
&lt;br /&gt;
[[サウンド演習I]] | [[サウンド演習II]] |&lt;br /&gt;
&lt;br /&gt;
[[総合メディア概論]] | [[システムデザイン]] | &lt;br /&gt;
&lt;br /&gt;
[[サイエンスアート特論]] | [[インタラクティブメディア特論I]] | [[インタラクティブメディア特論演習I]]&lt;br /&gt;
&lt;br /&gt;
[[インタラクティブメディア概論A]] &lt;br /&gt;
&lt;br /&gt;
[[Max/MSPによるMIDIプログラミング]] | [[Max/MSPによるオーディオプログラミング]] | &lt;br /&gt;
&lt;br /&gt;
[[MaxとFlashの通信]] | &lt;br /&gt;
[[Google Maps API V3]] | &lt;br /&gt;
[[openFrameworks for Visual studio]] | &lt;br /&gt;
[[VOCALOID seminar]]&lt;br /&gt;
&lt;br /&gt;
[[Scratchプログラミング]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Sf5AoCJWLnw&amp;amp;list=PLZBjTmM9PGD94oPGCrMSwzgPAEc47NHok サウンド演習IIベストセレクション2005-2015]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:研究|研究]] ==&lt;br /&gt;
[[docker]] / [[nginx]] / [[Deep Learning]] / [[Python]] / [[PyTorch]] / [[PHP]]&lt;br /&gt;
&lt;br /&gt;
[[Color Mapping]] / [[NeoPixel]] / [[Gaudi]] / [[ABC Conjecture]]&lt;br /&gt;
&lt;br /&gt;
[https://www.hiroshige.org.uk/ Ukiyoe Utagawa Hiroshige UK]&lt;br /&gt;
&lt;br /&gt;
[http://www.kuhalabo.net/mng/ mng]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/?&amp;amp;_encoding=UTF8&amp;amp;tag=q8labo-22&amp;amp;linkCode=ur2&amp;amp;linkId=6ba01c2aa4181dbe238cfe6cb8cb5846&amp;amp;camp=247&amp;amp;creative=1211 Amazon]&lt;br /&gt;
&lt;br /&gt;
[https://chat.openai.com/auth/login chatGPT]&lt;br /&gt;
&lt;br /&gt;
VT Piano http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/@kuhalabo&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/playlist?list=PLZBjTmM9PGD9q3aNDgK0STlnewznEpu4w&lt;br /&gt;
&lt;br /&gt;
== 東京工芸大学 ==&lt;br /&gt;
&lt;br /&gt;
[http://www.t-kougei.ac.jp/index.html 公式サイト] /&lt;br /&gt;
[https://portal.kougei.net/up/faces/login/Com00501A.jsp コウゲイ.net] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOOGEIブログ] / &lt;br /&gt;
[https://100th.t-kougei.ac.jp/activity/ 100周年の取り組み] /&lt;br /&gt;
&lt;br /&gt;
[https://www-lib.t-kougei.ac.jp/ 図書館蔵書検索] /&lt;br /&gt;
[http://www.cc.t-kougei.ac.jp/ 情報処理教育研究センター] / &lt;br /&gt;
[http://gakuen.t-kougei.ac.jp/ GAKUEN] /&lt;br /&gt;
[http://www.univcoop.jp/kougei/ 工芸大生協] / &lt;br /&gt;
[http://order.univ.coop/ 生協Webショッピング] /&lt;br /&gt;
[https://univpc.com/ uniV PC] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOUGEI PEOPLE] /&lt;br /&gt;
[https://collab.t-kougei.ac.jp/ 色の科学芸術センター col.lab]　/ &lt;br /&gt;
[https://www.t-kougei.ac.jp/activity/extension/  芸術学部フェスタ] / &lt;br /&gt;
[https://kougei.repo.nii.ac.jp/ 学術リポジトリ]&lt;br /&gt;
&lt;br /&gt;
=== インタラクティブメディア学科 ===&lt;br /&gt;
&lt;br /&gt;
[http://www.int.t-kougei.ac.jp/ IM学科オフィシャル]&lt;br /&gt;
&lt;br /&gt;
* [[IM Open Lesson|インタラクティブメディア公開レッスン]] &lt;br /&gt;
*[https://blog.t-kougei.ac.jp/int/ IM学科ブログ]&lt;br /&gt;
*[https://prezi.com/wve3-xczpvno/presentation/?present=1 IM学科プレゼン資料(Prezi)]&lt;br /&gt;
*[https://www.youtube.com/watch?v=lDi-T-yIKFk&amp;amp;t=5s IM学科紹介動画(YouTube)]&lt;br /&gt;
*[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q IM学科YouTubeチャンネル]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[教務]]&lt;br /&gt;
&lt;br /&gt;
[[教職課程]]&lt;br /&gt;
&lt;br /&gt;
[[久原研究室]]&lt;br /&gt;
&lt;br /&gt;
[http://socialakiba.com/ 永江研究室]&lt;br /&gt;
&lt;br /&gt;
旧[[:Category:カリキュラム|カリキュラム]]&lt;br /&gt;
&lt;br /&gt;
== 大学院 ==&lt;br /&gt;
&lt;br /&gt;
[[芸術学研究科]]&lt;br /&gt;
&lt;br /&gt;
==  [[:Category:施設|施設]] ==&lt;br /&gt;
&lt;br /&gt;
=== 中野キャンパス ===&lt;br /&gt;
[https://www.t-kougei.ac.jp/access/#nakano アクセス] /&lt;br /&gt;
[https://www.t-kougei.ac.jp/guide/campus/nakano/ キャンパスマップ]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
プロトタイピングラボ / &lt;br /&gt;
IM演習室 / &lt;br /&gt;
IMスタジオA,B,C,D / &lt;br /&gt;
サウンドスタジオ / &lt;br /&gt;
映像スタジオ /&lt;br /&gt;
&lt;br /&gt;
=== 厚木キャンパス ===&lt;br /&gt;
[https://www.t-kougei.ac.jp/access/#atsugi アクセス] /&lt;br /&gt;
[https://www.t-kougei.ac.jp/guide/campus/atsugi/ キャンパスマップ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[学科オフィス]] / &lt;br /&gt;
[[サウンドスタジオ]] /&lt;br /&gt;
[[312教室]] /&lt;br /&gt;
[[共同研究室]] /&lt;br /&gt;
[[Communication Space]] /&lt;br /&gt;
[[専用講義室]] /&lt;br /&gt;
デジタルスタジオ&lt;br /&gt;
&lt;br /&gt;
== インタラクティブメディア学科 ==&lt;br /&gt;
&lt;br /&gt;
[https://blog.t-kougei.ac.jp/int/ ブログ] /&lt;br /&gt;
[http://prezi.com/wve3-xczpvno/?utm_campaign=share&amp;amp;utm_medium=copy&amp;amp;rc=ex0share 学科紹介プレゼンテーション資料(Prezi Classic)] /&lt;br /&gt;
[https://prezi.com/view/2eIvkgJImF4VKYvyIZkI/ 学科紹介ビデオ(Prezi Next)]&lt;br /&gt;
&lt;br /&gt;
== 参考資料 ==&lt;br /&gt;
&lt;br /&gt;
[http://www.kuhalabo.net/~kuha/tutorial0/ 旧チュートリアルサイト]&lt;br /&gt;
&lt;br /&gt;
[http://tutorial.unity3d.jp/ はじめてのUnity]&lt;br /&gt;
&lt;br /&gt;
https://ars.electronica.art/prix/en/&lt;br /&gt;
&lt;br /&gt;
https://www.artofthecell.com/&lt;br /&gt;
&lt;br /&gt;
== 学会 ==&lt;br /&gt;
&lt;br /&gt;
AI Music Creativity https://aimusiccreativity.org/&lt;br /&gt;
&lt;br /&gt;
== NIME ==&lt;br /&gt;
&lt;br /&gt;
Life Game Orchestra http://www.kuhalabo.net/~kuha/nime/lifegorch/&lt;br /&gt;
&lt;br /&gt;
Tweet Harp http://www.kuhalabo.net/~kuha/nime/tweetharp/&lt;br /&gt;
&lt;br /&gt;
Wii Love Music http://www.kuhalabo.net/~kuha/nime/wiimu/&lt;br /&gt;
&lt;br /&gt;
Multi-track Loop Sequencer http://www.kuhalabo.net/~kuha/nime/lpsqr/&lt;br /&gt;
&lt;br /&gt;
Circle Canon Chorus Frog Round http://www.kuhalabo.net/~kuha/nime/kanon/chorus/&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
== 宇宙物理・天文 ==&lt;br /&gt;
&lt;br /&gt;
宇宙天気予報   https://swc.nict.go.jp/&lt;br /&gt;
&lt;br /&gt;
ケプラーの惑星音階　https://www.asahi-net.or.jp/~hb9t-ktd/music/Japan/Research/Genre/Fantasy/kepler.html&lt;br /&gt;
&lt;br /&gt;
ダジック・アース　https://www.dagik.net/ | https://www.npo.dagik.org/ | http://dagik.org/dow/&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
[[サーバ設定]]&lt;br /&gt;
&lt;br /&gt;
[[:Category:薬|薬]]&lt;br /&gt;
&lt;br /&gt;
[[Kalles Fraktaler]]&lt;br /&gt;
&lt;br /&gt;
[https://www.harjavalta.fi/kulttuuri-ja-vapaa-aika/museo/ Emil Cedercreutzin museo]&lt;br /&gt;
&lt;br /&gt;
[[素数]]&lt;br /&gt;
&lt;br /&gt;
[[誤訳]]&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~kuha/tutorial0/&lt;br /&gt;
&lt;br /&gt;
;アマゾンの領収書&lt;br /&gt;
https://www.amazon.co.jp/gp/legacy/css/summary/print.html/ref=oh_aui_ajax_invoice?ie=UTF8&amp;amp;orderID=注文番号&lt;br /&gt;
&lt;br /&gt;
== Youtube ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCILd88Su8uj8PDWp2kHC_1w/videos?flow=list Takanori Nagae] /&lt;br /&gt;
[https://www.youtube.com/user/kuhalabo/videos?view=57&amp;amp;flow=list Kuhalabo] /&lt;br /&gt;
[https://www.youtube.com/user/kikakukougei kikakukougei] /&lt;br /&gt;
[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q インタラクティブメディア学科] /&lt;br /&gt;
[https://www.youtube.com/channel/UCRHkKJFdiyLG9pQXp_Q4Qtg 工芸大生協] /&lt;br /&gt;
&lt;br /&gt;
== はじめましょう ==&lt;br /&gt;
* [//meta.wikimedia.org/wiki/Help:Contents 利用者案内]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:Configuration_settings/ja 設定の一覧]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ/ja MediaWiki よくある質問と回答]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWikiリリース情報メーリングリスト]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8"/>
				<updated>2025-10-14T08:00:47Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* ad */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[:Category:授業|授業]] ==&lt;br /&gt;
&lt;br /&gt;
[[コンピュータリテラシーA]]&lt;br /&gt;
&lt;br /&gt;
[[作曲演習]]&lt;br /&gt;
&lt;br /&gt;
[[スケーラブルアート論]]&lt;br /&gt;
&lt;br /&gt;
知性と感性を学ぶ([[Study on Intelligence and Sensibility]]9&lt;br /&gt;
&lt;br /&gt;
カラーサイエンス＆アート([[Color Sciense and Art]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ジェネラティブアート論]] | [[生命情報アート論]]&lt;br /&gt;
&lt;br /&gt;
[[サウンド演習I]] | [[サウンド演習II]] |&lt;br /&gt;
&lt;br /&gt;
[[総合メディア概論]] | [[システムデザイン]] | &lt;br /&gt;
&lt;br /&gt;
[[サイエンスアート特論]] | [[インタラクティブメディア特論I]] | [[インタラクティブメディア特論演習I]]&lt;br /&gt;
&lt;br /&gt;
[[インタラクティブメディア概論A]] &lt;br /&gt;
&lt;br /&gt;
[[Max/MSPによるMIDIプログラミング]] | [[Max/MSPによるオーディオプログラミング]] | &lt;br /&gt;
&lt;br /&gt;
[[MaxとFlashの通信]] | &lt;br /&gt;
[[Google Maps API V3]] | &lt;br /&gt;
[[openFrameworks for Visual studio]] | &lt;br /&gt;
[[VOCALOID seminar]]&lt;br /&gt;
&lt;br /&gt;
[[Scratchプログラミング]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Sf5AoCJWLnw&amp;amp;list=PLZBjTmM9PGD94oPGCrMSwzgPAEc47NHok サウンド演習IIベストセレクション2005-2015]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:研究|研究]] ==&lt;br /&gt;
[[docker]] / [[nginx]] / [[Deep Learning]] / [[Python]] / [[PyTorch]] / [[PHP]]&lt;br /&gt;
&lt;br /&gt;
[[Color Mapping]] / [[NeoPixel]] / [[Gaudi]] / [[ABC Conjecture]]&lt;br /&gt;
&lt;br /&gt;
[https://www.hiroshige.org.uk/ Ukiyoe Utagawa Hiroshige UK]&lt;br /&gt;
&lt;br /&gt;
[http://www.kuhalabo.net/mng/ mng]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/?&amp;amp;_encoding=UTF8&amp;amp;tag=q8labo-22&amp;amp;linkCode=ur2&amp;amp;linkId=6ba01c2aa4181dbe238cfe6cb8cb5846&amp;amp;camp=247&amp;amp;creative=1211 Amazon]&lt;br /&gt;
&lt;br /&gt;
[https://chat.openai.com/auth/login chatGPT]&lt;br /&gt;
&lt;br /&gt;
VT Piano http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/@kuhalabo&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/playlist?list=PLZBjTmM9PGD9q3aNDgK0STlnewznEpu4w&lt;br /&gt;
&lt;br /&gt;
== 東京工芸大学 ==&lt;br /&gt;
&lt;br /&gt;
[http://www.t-kougei.ac.jp/index.html 公式サイト] /&lt;br /&gt;
[https://portal.kougei.net/up/faces/login/Com00501A.jsp コウゲイ.net] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOOGEIブログ] / &lt;br /&gt;
[https://100th.t-kougei.ac.jp/activity/ 100周年の取り組み] /&lt;br /&gt;
&lt;br /&gt;
[https://www-lib.t-kougei.ac.jp/ 図書館蔵書検索] /&lt;br /&gt;
[http://www.cc.t-kougei.ac.jp/ 情報処理教育研究センター] / &lt;br /&gt;
[http://gakuen.t-kougei.ac.jp/ GAKUEN] /&lt;br /&gt;
[http://www.univcoop.jp/kougei/ 工芸大生協] / &lt;br /&gt;
[http://order.univ.coop/ 生協Webショッピング] /&lt;br /&gt;
[https://univpc.com/ uniV PC] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOUGEI PEOPLE] /&lt;br /&gt;
[https://collab.t-kougei.ac.jp/ 色の科学芸術センター col.lab]　/ &lt;br /&gt;
[https://www.t-kougei.ac.jp/activity/extension/  芸術学部フェスタ] / &lt;br /&gt;
[https://kougei.repo.nii.ac.jp/ 学術リポジトリ]&lt;br /&gt;
&lt;br /&gt;
=== インタラクティブメディア学科 ===&lt;br /&gt;
&lt;br /&gt;
[http://www.int.t-kougei.ac.jp/ IM学科オフィシャル]&lt;br /&gt;
&lt;br /&gt;
* [[IM Open Lesson|インタラクティブメディア公開レッスン]] &lt;br /&gt;
*[https://blog.t-kougei.ac.jp/int/ IM学科ブログ]&lt;br /&gt;
*[https://prezi.com/wve3-xczpvno/presentation/?present=1 IM学科プレゼン資料(Prezi)]&lt;br /&gt;
*[https://www.youtube.com/watch?v=lDi-T-yIKFk&amp;amp;t=5s IM学科紹介動画(YouTube)]&lt;br /&gt;
*[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q IM学科YouTubeチャンネル]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[教務]]&lt;br /&gt;
&lt;br /&gt;
[[教職課程]]&lt;br /&gt;
&lt;br /&gt;
[[久原研究室]]&lt;br /&gt;
&lt;br /&gt;
[http://socialakiba.com/ 永江研究室]&lt;br /&gt;
&lt;br /&gt;
旧[[:Category:カリキュラム|カリキュラム]]&lt;br /&gt;
&lt;br /&gt;
== 大学院 ==&lt;br /&gt;
&lt;br /&gt;
[[芸術学研究科]]&lt;br /&gt;
&lt;br /&gt;
==  [[:Category:施設|施設]] ==&lt;br /&gt;
&lt;br /&gt;
=== 中野キャンパス ===&lt;br /&gt;
[https://www.t-kougei.ac.jp/access/#nakano アクセス] /&lt;br /&gt;
[https://www.t-kougei.ac.jp/guide/campus/nakano/ キャンパスマップ]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
プロトタイピングラボ / &lt;br /&gt;
IM演習室 / &lt;br /&gt;
IMスタジオA,B,C,D / &lt;br /&gt;
サウンドスタジオ / &lt;br /&gt;
映像スタジオ /&lt;br /&gt;
&lt;br /&gt;
=== 厚木キャンパス ===&lt;br /&gt;
[https://www.t-kougei.ac.jp/access/#atsugi アクセス] /&lt;br /&gt;
[https://www.t-kougei.ac.jp/guide/campus/atsugi/ キャンパスマップ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[学科オフィス]] / &lt;br /&gt;
[[サウンドスタジオ]] /&lt;br /&gt;
[[312教室]] /&lt;br /&gt;
[[共同研究室]] /&lt;br /&gt;
[[Communication Space]] /&lt;br /&gt;
[[専用講義室]] /&lt;br /&gt;
デジタルスタジオ&lt;br /&gt;
&lt;br /&gt;
== インタラクティブメディア学科 ==&lt;br /&gt;
&lt;br /&gt;
[https://blog.t-kougei.ac.jp/int/ ブログ] /&lt;br /&gt;
[http://prezi.com/wve3-xczpvno/?utm_campaign=share&amp;amp;utm_medium=copy&amp;amp;rc=ex0share 学科紹介プレゼンテーション資料(Prezi Classic)] /&lt;br /&gt;
[https://prezi.com/view/2eIvkgJImF4VKYvyIZkI/ 学科紹介ビデオ(Prezi Next)]&lt;br /&gt;
&lt;br /&gt;
== 参考資料 ==&lt;br /&gt;
&lt;br /&gt;
[http://www.kuhalabo.net/~kuha/tutorial0/ 旧チュートリアルサイト]&lt;br /&gt;
&lt;br /&gt;
[http://tutorial.unity3d.jp/ はじめてのUnity]&lt;br /&gt;
&lt;br /&gt;
https://ars.electronica.art/prix/en/&lt;br /&gt;
&lt;br /&gt;
https://www.artofthecell.com/&lt;br /&gt;
&lt;br /&gt;
== 学会 ==&lt;br /&gt;
&lt;br /&gt;
AI Music Creativity https://aimusiccreativity.org/&lt;br /&gt;
&lt;br /&gt;
== NIME ==&lt;br /&gt;
&lt;br /&gt;
Life Game Orchestra http://www.kuhalabo.net/~kuha/nime/lifegorch/&lt;br /&gt;
&lt;br /&gt;
Tweet Harp http://www.kuhalabo.net/~kuha/nime/tweetharp/&lt;br /&gt;
&lt;br /&gt;
Wii Love Music http://www.kuhalabo.net/~kuha/nime/wiimu/&lt;br /&gt;
&lt;br /&gt;
Multi-track Loop Sequencer http://www.kuhalabo.net/~kuha/nime/lpsqr/&lt;br /&gt;
&lt;br /&gt;
Circle Canon Chorus Frog Round http://www.kuhalabo.net/~kuha/nime/kanon/chorus/&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
== 宇宙物理・天文 ==&lt;br /&gt;
&lt;br /&gt;
宇宙天気予報   https://swc.nict.go.jp/&lt;br /&gt;
&lt;br /&gt;
ケプラーの惑星音階　https://www.asahi-net.or.jp/~hb9t-ktd/music/Japan/Research/Genre/Fantasy/kepler.html&lt;br /&gt;
&lt;br /&gt;
ダジック・アース　https://www.dagik.net/ | https://www.npo.dagik.org/ | http://dagik.org/dow/&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
[[サーバ設定]]&lt;br /&gt;
&lt;br /&gt;
[[:Category:薬|薬]]&lt;br /&gt;
&lt;br /&gt;
[[Kalles Fraktaler]]&lt;br /&gt;
&lt;br /&gt;
[https://www.harjavalta.fi/kulttuuri-ja-vapaa-aika/museo/ Emil Cedercreutzin museo]&lt;br /&gt;
&lt;br /&gt;
[[素数]]&lt;br /&gt;
&lt;br /&gt;
[[誤訳]]&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~kuha/tutorial0/&lt;br /&gt;
&lt;br /&gt;
== Youtube ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCILd88Su8uj8PDWp2kHC_1w/videos?flow=list Takanori Nagae] /&lt;br /&gt;
[https://www.youtube.com/user/kuhalabo/videos?view=57&amp;amp;flow=list Kuhalabo] /&lt;br /&gt;
[https://www.youtube.com/user/kikakukougei kikakukougei] /&lt;br /&gt;
[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q インタラクティブメディア学科] /&lt;br /&gt;
[https://www.youtube.com/channel/UCRHkKJFdiyLG9pQXp_Q4Qtg 工芸大生協] /&lt;br /&gt;
&lt;br /&gt;
== はじめましょう ==&lt;br /&gt;
* [//meta.wikimedia.org/wiki/Help:Contents 利用者案内]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:Configuration_settings/ja 設定の一覧]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ/ja MediaWiki よくある質問と回答]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWikiリリース情報メーリングリスト]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8"/>
				<updated>2025-10-14T08:00:37Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* 研究 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[:Category:授業|授業]] ==&lt;br /&gt;
&lt;br /&gt;
[[コンピュータリテラシーA]]&lt;br /&gt;
&lt;br /&gt;
[[作曲演習]]&lt;br /&gt;
&lt;br /&gt;
[[スケーラブルアート論]]&lt;br /&gt;
&lt;br /&gt;
知性と感性を学ぶ([[Study on Intelligence and Sensibility]]9&lt;br /&gt;
&lt;br /&gt;
カラーサイエンス＆アート([[Color Sciense and Art]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ジェネラティブアート論]] | [[生命情報アート論]]&lt;br /&gt;
&lt;br /&gt;
[[サウンド演習I]] | [[サウンド演習II]] |&lt;br /&gt;
&lt;br /&gt;
[[総合メディア概論]] | [[システムデザイン]] | &lt;br /&gt;
&lt;br /&gt;
[[サイエンスアート特論]] | [[インタラクティブメディア特論I]] | [[インタラクティブメディア特論演習I]]&lt;br /&gt;
&lt;br /&gt;
[[インタラクティブメディア概論A]] &lt;br /&gt;
&lt;br /&gt;
[[Max/MSPによるMIDIプログラミング]] | [[Max/MSPによるオーディオプログラミング]] | &lt;br /&gt;
&lt;br /&gt;
[[MaxとFlashの通信]] | &lt;br /&gt;
[[Google Maps API V3]] | &lt;br /&gt;
[[openFrameworks for Visual studio]] | &lt;br /&gt;
[[VOCALOID seminar]]&lt;br /&gt;
&lt;br /&gt;
[[Scratchプログラミング]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Sf5AoCJWLnw&amp;amp;list=PLZBjTmM9PGD94oPGCrMSwzgPAEc47NHok サウンド演習IIベストセレクション2005-2015]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:研究|研究]] ==&lt;br /&gt;
[[docker]] / [[nginx]] / [[Deep Learning]] / [[Python]] / [[PyTorch]] / [[PHP]]&lt;br /&gt;
&lt;br /&gt;
[[Color Mapping]] / [[NeoPixel]] / [[Gaudi]] / [[ABC Conjecture]]&lt;br /&gt;
&lt;br /&gt;
[https://www.hiroshige.org.uk/ Ukiyoe Utagawa Hiroshige UK]&lt;br /&gt;
&lt;br /&gt;
[http://www.kuhalabo.net/mng/ mng]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/?&amp;amp;_encoding=UTF8&amp;amp;tag=q8labo-22&amp;amp;linkCode=ur2&amp;amp;linkId=6ba01c2aa4181dbe238cfe6cb8cb5846&amp;amp;camp=247&amp;amp;creative=1211 Amazon]&lt;br /&gt;
&lt;br /&gt;
[https://chat.openai.com/auth/login chatGPT]&lt;br /&gt;
&lt;br /&gt;
VT Piano http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/@kuhalabo&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/playlist?list=PLZBjTmM9PGD9q3aNDgK0STlnewznEpu4w&lt;br /&gt;
&lt;br /&gt;
== 東京工芸大学 ==&lt;br /&gt;
&lt;br /&gt;
[http://www.t-kougei.ac.jp/index.html 公式サイト] /&lt;br /&gt;
[https://portal.kougei.net/up/faces/login/Com00501A.jsp コウゲイ.net] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOOGEIブログ] / &lt;br /&gt;
[https://100th.t-kougei.ac.jp/activity/ 100周年の取り組み] /&lt;br /&gt;
&lt;br /&gt;
[https://www-lib.t-kougei.ac.jp/ 図書館蔵書検索] /&lt;br /&gt;
[http://www.cc.t-kougei.ac.jp/ 情報処理教育研究センター] / &lt;br /&gt;
[http://gakuen.t-kougei.ac.jp/ GAKUEN] /&lt;br /&gt;
[http://www.univcoop.jp/kougei/ 工芸大生協] / &lt;br /&gt;
[http://order.univ.coop/ 生協Webショッピング] /&lt;br /&gt;
[https://univpc.com/ uniV PC] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOUGEI PEOPLE] /&lt;br /&gt;
[https://collab.t-kougei.ac.jp/ 色の科学芸術センター col.lab]　/ &lt;br /&gt;
[https://www.t-kougei.ac.jp/activity/extension/  芸術学部フェスタ] / &lt;br /&gt;
[https://kougei.repo.nii.ac.jp/ 学術リポジトリ]&lt;br /&gt;
&lt;br /&gt;
=== インタラクティブメディア学科 ===&lt;br /&gt;
&lt;br /&gt;
[http://www.int.t-kougei.ac.jp/ IM学科オフィシャル]&lt;br /&gt;
&lt;br /&gt;
* [[IM Open Lesson|インタラクティブメディア公開レッスン]] &lt;br /&gt;
*[https://blog.t-kougei.ac.jp/int/ IM学科ブログ]&lt;br /&gt;
*[https://prezi.com/wve3-xczpvno/presentation/?present=1 IM学科プレゼン資料(Prezi)]&lt;br /&gt;
*[https://www.youtube.com/watch?v=lDi-T-yIKFk&amp;amp;t=5s IM学科紹介動画(YouTube)]&lt;br /&gt;
*[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q IM学科YouTubeチャンネル]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[教務]]&lt;br /&gt;
&lt;br /&gt;
[[教職課程]]&lt;br /&gt;
&lt;br /&gt;
[[久原研究室]]&lt;br /&gt;
&lt;br /&gt;
[http://socialakiba.com/ 永江研究室]&lt;br /&gt;
&lt;br /&gt;
旧[[:Category:カリキュラム|カリキュラム]]&lt;br /&gt;
&lt;br /&gt;
== 大学院 ==&lt;br /&gt;
&lt;br /&gt;
[[芸術学研究科]]&lt;br /&gt;
&lt;br /&gt;
==  [[:Category:施設|施設]] ==&lt;br /&gt;
&lt;br /&gt;
=== 中野キャンパス ===&lt;br /&gt;
[https://www.t-kougei.ac.jp/access/#nakano アクセス] /&lt;br /&gt;
[https://www.t-kougei.ac.jp/guide/campus/nakano/ キャンパスマップ]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
プロトタイピングラボ / &lt;br /&gt;
IM演習室 / &lt;br /&gt;
IMスタジオA,B,C,D / &lt;br /&gt;
サウンドスタジオ / &lt;br /&gt;
映像スタジオ /&lt;br /&gt;
&lt;br /&gt;
=== 厚木キャンパス ===&lt;br /&gt;
[https://www.t-kougei.ac.jp/access/#atsugi アクセス] /&lt;br /&gt;
[https://www.t-kougei.ac.jp/guide/campus/atsugi/ キャンパスマップ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[学科オフィス]] / &lt;br /&gt;
[[サウンドスタジオ]] /&lt;br /&gt;
[[312教室]] /&lt;br /&gt;
[[共同研究室]] /&lt;br /&gt;
[[Communication Space]] /&lt;br /&gt;
[[専用講義室]] /&lt;br /&gt;
デジタルスタジオ&lt;br /&gt;
&lt;br /&gt;
== インタラクティブメディア学科 ==&lt;br /&gt;
&lt;br /&gt;
[https://blog.t-kougei.ac.jp/int/ ブログ] /&lt;br /&gt;
[http://prezi.com/wve3-xczpvno/?utm_campaign=share&amp;amp;utm_medium=copy&amp;amp;rc=ex0share 学科紹介プレゼンテーション資料(Prezi Classic)] /&lt;br /&gt;
[https://prezi.com/view/2eIvkgJImF4VKYvyIZkI/ 学科紹介ビデオ(Prezi Next)]&lt;br /&gt;
&lt;br /&gt;
== 参考資料 ==&lt;br /&gt;
&lt;br /&gt;
[http://www.kuhalabo.net/~kuha/tutorial0/ 旧チュートリアルサイト]&lt;br /&gt;
&lt;br /&gt;
[http://tutorial.unity3d.jp/ はじめてのUnity]&lt;br /&gt;
&lt;br /&gt;
https://ars.electronica.art/prix/en/&lt;br /&gt;
&lt;br /&gt;
https://www.artofthecell.com/&lt;br /&gt;
&lt;br /&gt;
== 学会 ==&lt;br /&gt;
&lt;br /&gt;
AI Music Creativity https://aimusiccreativity.org/&lt;br /&gt;
&lt;br /&gt;
== NIME ==&lt;br /&gt;
&lt;br /&gt;
Life Game Orchestra http://www.kuhalabo.net/~kuha/nime/lifegorch/&lt;br /&gt;
&lt;br /&gt;
Tweet Harp http://www.kuhalabo.net/~kuha/nime/tweetharp/&lt;br /&gt;
&lt;br /&gt;
Wii Love Music http://www.kuhalabo.net/~kuha/nime/wiimu/&lt;br /&gt;
&lt;br /&gt;
Multi-track Loop Sequencer http://www.kuhalabo.net/~kuha/nime/lpsqr/&lt;br /&gt;
&lt;br /&gt;
Circle Canon Chorus Frog Round http://www.kuhalabo.net/~kuha/nime/kanon/chorus/&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
== 宇宙物理・天文 ==&lt;br /&gt;
&lt;br /&gt;
宇宙天気予報   https://swc.nict.go.jp/&lt;br /&gt;
&lt;br /&gt;
ケプラーの惑星音階　https://www.asahi-net.or.jp/~hb9t-ktd/music/Japan/Research/Genre/Fantasy/kepler.html&lt;br /&gt;
&lt;br /&gt;
ダジック・アース　https://www.dagik.net/ | https://www.npo.dagik.org/ | http://dagik.org/dow/&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
[[サーバ設定]]&lt;br /&gt;
&lt;br /&gt;
[[:Category:薬|薬]]&lt;br /&gt;
&lt;br /&gt;
[[Kalles Fraktaler]]&lt;br /&gt;
&lt;br /&gt;
[https://www.harjavalta.fi/kulttuuri-ja-vapaa-aika/museo/ Emil Cedercreutzin museo]&lt;br /&gt;
&lt;br /&gt;
[[素数]]&lt;br /&gt;
&lt;br /&gt;
[[誤訳]]&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~kuha/tutorial0/&lt;br /&gt;
&lt;br /&gt;
== Youtube ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCILd88Su8uj8PDWp2kHC_1w/videos?flow=list Takanori Nagae] /&lt;br /&gt;
[https://www.youtube.com/user/kuhalabo/videos?view=57&amp;amp;flow=list Kuhalabo] /&lt;br /&gt;
[https://www.youtube.com/user/kikakukougei kikakukougei] /&lt;br /&gt;
[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q インタラクティブメディア学科] /&lt;br /&gt;
[https://www.youtube.com/channel/UCRHkKJFdiyLG9pQXp_Q4Qtg 工芸大生協] /&lt;br /&gt;
&lt;br /&gt;
== はじめましょう ==&lt;br /&gt;
* [//meta.wikimedia.org/wiki/Help:Contents 利用者案内]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:Configuration_settings/ja 設定の一覧]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ/ja MediaWiki よくある質問と回答]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWikiリリース情報メーリングリスト]&lt;br /&gt;
&lt;br /&gt;
== ad ==&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8"/>
				<updated>2025-10-14T07:59:36Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* 研究 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[:Category:授業|授業]] ==&lt;br /&gt;
&lt;br /&gt;
[[コンピュータリテラシーA]]&lt;br /&gt;
&lt;br /&gt;
[[作曲演習]]&lt;br /&gt;
&lt;br /&gt;
[[スケーラブルアート論]]&lt;br /&gt;
&lt;br /&gt;
知性と感性を学ぶ([[Study on Intelligence and Sensibility]]9&lt;br /&gt;
&lt;br /&gt;
カラーサイエンス＆アート([[Color Sciense and Art]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ジェネラティブアート論]] | [[生命情報アート論]]&lt;br /&gt;
&lt;br /&gt;
[[サウンド演習I]] | [[サウンド演習II]] |&lt;br /&gt;
&lt;br /&gt;
[[総合メディア概論]] | [[システムデザイン]] | &lt;br /&gt;
&lt;br /&gt;
[[サイエンスアート特論]] | [[インタラクティブメディア特論I]] | [[インタラクティブメディア特論演習I]]&lt;br /&gt;
&lt;br /&gt;
[[インタラクティブメディア概論A]] &lt;br /&gt;
&lt;br /&gt;
[[Max/MSPによるMIDIプログラミング]] | [[Max/MSPによるオーディオプログラミング]] | &lt;br /&gt;
&lt;br /&gt;
[[MaxとFlashの通信]] | &lt;br /&gt;
[[Google Maps API V3]] | &lt;br /&gt;
[[openFrameworks for Visual studio]] | &lt;br /&gt;
[[VOCALOID seminar]]&lt;br /&gt;
&lt;br /&gt;
[[Scratchプログラミング]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Sf5AoCJWLnw&amp;amp;list=PLZBjTmM9PGD94oPGCrMSwzgPAEc47NHok サウンド演習IIベストセレクション2005-2015]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:研究|研究]] ==&lt;br /&gt;
[[docker]] / [[nginx]] / [[Deep Learning]] / [[Python]] / [[PyTorch]] / [[PHP]]&lt;br /&gt;
&lt;br /&gt;
[[Color Mapping]] / [[NeoPixel]] / [[Gaudi]] / [[ABC Conjecture]]&lt;br /&gt;
&lt;br /&gt;
[https://www.hiroshige.org.uk/ Ukiyoe Utagawa Hiroshige UK]&lt;br /&gt;
&lt;br /&gt;
[http://www.kuhalabo.net/mng/ mng]&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.co.jp/?&amp;amp;_encoding=UTF8&amp;amp;tag=q8labo-22&amp;amp;linkCode=ur2&amp;amp;linkId=6ba01c2aa4181dbe238cfe6cb8cb5846&amp;amp;camp=247&amp;amp;creative=1211 Amazon]&lt;br /&gt;
&lt;br /&gt;
;アマゾンの領収書&lt;br /&gt;
https://www.amazon.co.jp/gp/legacy/css/summary/print.html/ref=oh_aui_ajax_invoice?ie=UTF8&amp;amp;orderID=注文番号&lt;br /&gt;
&lt;br /&gt;
[https://chat.openai.com/auth/login chatGPT]&lt;br /&gt;
&lt;br /&gt;
VT Piano http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/@kuhalabo&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/playlist?list=PLZBjTmM9PGD9q3aNDgK0STlnewznEpu4w&lt;br /&gt;
&lt;br /&gt;
== 東京工芸大学 ==&lt;br /&gt;
&lt;br /&gt;
[http://www.t-kougei.ac.jp/index.html 公式サイト] /&lt;br /&gt;
[https://portal.kougei.net/up/faces/login/Com00501A.jsp コウゲイ.net] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOOGEIブログ] / &lt;br /&gt;
[https://100th.t-kougei.ac.jp/activity/ 100周年の取り組み] /&lt;br /&gt;
&lt;br /&gt;
[https://www-lib.t-kougei.ac.jp/ 図書館蔵書検索] /&lt;br /&gt;
[http://www.cc.t-kougei.ac.jp/ 情報処理教育研究センター] / &lt;br /&gt;
[http://gakuen.t-kougei.ac.jp/ GAKUEN] /&lt;br /&gt;
[http://www.univcoop.jp/kougei/ 工芸大生協] / &lt;br /&gt;
[http://order.univ.coop/ 生協Webショッピング] /&lt;br /&gt;
[https://univpc.com/ uniV PC] / &lt;br /&gt;
[https://blog.t-kougei.ac.jp/ KOUGEI PEOPLE] /&lt;br /&gt;
[https://collab.t-kougei.ac.jp/ 色の科学芸術センター col.lab]　/ &lt;br /&gt;
[https://www.t-kougei.ac.jp/activity/extension/  芸術学部フェスタ] / &lt;br /&gt;
[https://kougei.repo.nii.ac.jp/ 学術リポジトリ]&lt;br /&gt;
&lt;br /&gt;
=== インタラクティブメディア学科 ===&lt;br /&gt;
&lt;br /&gt;
[http://www.int.t-kougei.ac.jp/ IM学科オフィシャル]&lt;br /&gt;
&lt;br /&gt;
* [[IM Open Lesson|インタラクティブメディア公開レッスン]] &lt;br /&gt;
*[https://blog.t-kougei.ac.jp/int/ IM学科ブログ]&lt;br /&gt;
*[https://prezi.com/wve3-xczpvno/presentation/?present=1 IM学科プレゼン資料(Prezi)]&lt;br /&gt;
*[https://www.youtube.com/watch?v=lDi-T-yIKFk&amp;amp;t=5s IM学科紹介動画(YouTube)]&lt;br /&gt;
*[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q IM学科YouTubeチャンネル]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[教務]]&lt;br /&gt;
&lt;br /&gt;
[[教職課程]]&lt;br /&gt;
&lt;br /&gt;
[[久原研究室]]&lt;br /&gt;
&lt;br /&gt;
[http://socialakiba.com/ 永江研究室]&lt;br /&gt;
&lt;br /&gt;
旧[[:Category:カリキュラム|カリキュラム]]&lt;br /&gt;
&lt;br /&gt;
== 大学院 ==&lt;br /&gt;
&lt;br /&gt;
[[芸術学研究科]]&lt;br /&gt;
&lt;br /&gt;
==  [[:Category:施設|施設]] ==&lt;br /&gt;
&lt;br /&gt;
=== 中野キャンパス ===&lt;br /&gt;
[https://www.t-kougei.ac.jp/access/#nakano アクセス] /&lt;br /&gt;
[https://www.t-kougei.ac.jp/guide/campus/nakano/ キャンパスマップ]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
プロトタイピングラボ / &lt;br /&gt;
IM演習室 / &lt;br /&gt;
IMスタジオA,B,C,D / &lt;br /&gt;
サウンドスタジオ / &lt;br /&gt;
映像スタジオ /&lt;br /&gt;
&lt;br /&gt;
=== 厚木キャンパス ===&lt;br /&gt;
[https://www.t-kougei.ac.jp/access/#atsugi アクセス] /&lt;br /&gt;
[https://www.t-kougei.ac.jp/guide/campus/atsugi/ キャンパスマップ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[学科オフィス]] / &lt;br /&gt;
[[サウンドスタジオ]] /&lt;br /&gt;
[[312教室]] /&lt;br /&gt;
[[共同研究室]] /&lt;br /&gt;
[[Communication Space]] /&lt;br /&gt;
[[専用講義室]] /&lt;br /&gt;
デジタルスタジオ&lt;br /&gt;
&lt;br /&gt;
== インタラクティブメディア学科 ==&lt;br /&gt;
&lt;br /&gt;
[https://blog.t-kougei.ac.jp/int/ ブログ] /&lt;br /&gt;
[http://prezi.com/wve3-xczpvno/?utm_campaign=share&amp;amp;utm_medium=copy&amp;amp;rc=ex0share 学科紹介プレゼンテーション資料(Prezi Classic)] /&lt;br /&gt;
[https://prezi.com/view/2eIvkgJImF4VKYvyIZkI/ 学科紹介ビデオ(Prezi Next)]&lt;br /&gt;
&lt;br /&gt;
== 参考資料 ==&lt;br /&gt;
&lt;br /&gt;
[http://www.kuhalabo.net/~kuha/tutorial0/ 旧チュートリアルサイト]&lt;br /&gt;
&lt;br /&gt;
[http://tutorial.unity3d.jp/ はじめてのUnity]&lt;br /&gt;
&lt;br /&gt;
https://ars.electronica.art/prix/en/&lt;br /&gt;
&lt;br /&gt;
https://www.artofthecell.com/&lt;br /&gt;
&lt;br /&gt;
== 学会 ==&lt;br /&gt;
&lt;br /&gt;
AI Music Creativity https://aimusiccreativity.org/&lt;br /&gt;
&lt;br /&gt;
== NIME ==&lt;br /&gt;
&lt;br /&gt;
Life Game Orchestra http://www.kuhalabo.net/~kuha/nime/lifegorch/&lt;br /&gt;
&lt;br /&gt;
Tweet Harp http://www.kuhalabo.net/~kuha/nime/tweetharp/&lt;br /&gt;
&lt;br /&gt;
Wii Love Music http://www.kuhalabo.net/~kuha/nime/wiimu/&lt;br /&gt;
&lt;br /&gt;
Multi-track Loop Sequencer http://www.kuhalabo.net/~kuha/nime/lpsqr/&lt;br /&gt;
&lt;br /&gt;
Circle Canon Chorus Frog Round http://www.kuhalabo.net/~kuha/nime/kanon/chorus/&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~web/vtp/&lt;br /&gt;
&lt;br /&gt;
== 宇宙物理・天文 ==&lt;br /&gt;
&lt;br /&gt;
宇宙天気予報   https://swc.nict.go.jp/&lt;br /&gt;
&lt;br /&gt;
ケプラーの惑星音階　https://www.asahi-net.or.jp/~hb9t-ktd/music/Japan/Research/Genre/Fantasy/kepler.html&lt;br /&gt;
&lt;br /&gt;
ダジック・アース　https://www.dagik.net/ | https://www.npo.dagik.org/ | http://dagik.org/dow/&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
[[サーバ設定]]&lt;br /&gt;
&lt;br /&gt;
[[:Category:薬|薬]]&lt;br /&gt;
&lt;br /&gt;
[[Kalles Fraktaler]]&lt;br /&gt;
&lt;br /&gt;
[https://www.harjavalta.fi/kulttuuri-ja-vapaa-aika/museo/ Emil Cedercreutzin museo]&lt;br /&gt;
&lt;br /&gt;
[[素数]]&lt;br /&gt;
&lt;br /&gt;
[[誤訳]]&lt;br /&gt;
&lt;br /&gt;
http://www.kuhalabo.net/~kuha/tutorial0/&lt;br /&gt;
&lt;br /&gt;
== Youtube ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCILd88Su8uj8PDWp2kHC_1w/videos?flow=list Takanori Nagae] /&lt;br /&gt;
[https://www.youtube.com/user/kuhalabo/videos?view=57&amp;amp;flow=list Kuhalabo] /&lt;br /&gt;
[https://www.youtube.com/user/kikakukougei kikakukougei] /&lt;br /&gt;
[https://www.youtube.com/channel/UCPHSDDHx9aHBM8c2TcHQd4Q インタラクティブメディア学科] /&lt;br /&gt;
[https://www.youtube.com/channel/UCRHkKJFdiyLG9pQXp_Q4Qtg 工芸大生協] /&lt;br /&gt;
&lt;br /&gt;
== はじめましょう ==&lt;br /&gt;
* [//meta.wikimedia.org/wiki/Help:Contents 利用者案内]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:Configuration_settings/ja 設定の一覧]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ/ja MediaWiki よくある質問と回答]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWikiリリース情報メーリングリスト]&lt;br /&gt;
&lt;br /&gt;
== ad ==&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/Max/MSP%E3%81%AB%E3%82%88%E3%82%8B%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0</id>
		<title>Max/MSPによるオーディオプログラミング</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/Max/MSP%E3%81%AB%E3%82%88%E3%82%8B%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0"/>
				<updated>2025-10-03T05:30:49Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* フィルター */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 音の物理的3要素 ==&lt;br /&gt;
通常、音の3要素とは、「高さ、強さ、音色」であるが、ここでは、「音色」の代わりに「長さ」を考慮する。&lt;br /&gt;
&lt;br /&gt;
;高さ&lt;br /&gt;
: 周波数, 音高&lt;br /&gt;
;強さ&lt;br /&gt;
: 音量, ボリューム&lt;br /&gt;
;長さ&lt;br /&gt;
: 時間, 空間&lt;br /&gt;
&lt;br /&gt;
== オシレータ ==&lt;br /&gt;
*発振器のこと。振動を発生させる器械のこと。&lt;br /&gt;
* サイン波 cycle~, ノコギリ波 phasor~&lt;br /&gt;
* 周波数&lt;br /&gt;
* adc~（マイク） dac~（スピーカー）&lt;br /&gt;
** a : アナログ：空気の振動&lt;br /&gt;
** d : デジタル：PCの中の数値&lt;br /&gt;
** c : コンバート&lt;br /&gt;
&lt;br /&gt;
* 音量操作　*~&lt;br /&gt;
* 加算合成　+~&lt;br /&gt;
&lt;br /&gt;
複数の周波数を足していくと、波形が変わっリ、音色が変わる。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Sinwav.png]]&lt;br /&gt;
* line~によるなめらかな変化&lt;br /&gt;
[[ファイル:Sinline.png]]&lt;br /&gt;
* MIDIのpitchを周波数に変換　mtof~ &lt;br /&gt;
[[ファイル:Sinemix.png]]&lt;br /&gt;
&lt;br /&gt;
== LFO ==&lt;br /&gt;
;Low Frequency Oscillator（低周波発振器）&lt;br /&gt;
* LFOで、音源オシレータにモジュレーション（変調）をかける。&lt;br /&gt;
* AMとFMの違い&lt;br /&gt;
* 演算子（「*」 や「+」）の位置は、オシレータ(cycle~)の前か後のどちらか？。&lt;br /&gt;
&lt;br /&gt;
=== AM (Amplitude Modulation)合成 ===&lt;br /&gt;
* 波形（'''シグナル'''）を乗算（掛け算）する&lt;br /&gt;
* 波形の振り幅が変わる。すなわち、音量が変わる。&lt;br /&gt;
** トレモロ効果&lt;br /&gt;
** 振り幅変化の周期と深さを変える。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:05-07-01amSynth.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== FM (Frequency Modulation)合成 ===&lt;br /&gt;
* 周波数（'''数値メッセージ'''）を加算（足し算）する&lt;br /&gt;
* 波形の周波数が変わる。すなわち、音高が変わる。&lt;br /&gt;
** ビブラート効果&lt;br /&gt;
** 周波数変化の周期と深さを変える。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:05-08-01 fmSynth.png]]&lt;br /&gt;
&lt;br /&gt;
==[[Envelope]](エンベロープ)==&lt;br /&gt;
*時間軸における音量変化。楽器ごとに個性がある。&lt;br /&gt;
*ピアノ、ギターなどはアタックが早く立ち上がるが、ストリングスはアタックがゆっくり立ち上がる。&lt;br /&gt;
* Maxではfunctionパッチを使って、音量変化を描く。&lt;br /&gt;
** クリックで点が増える。シフトクリックで点を消す。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:05-03-30envelope.png]]&lt;br /&gt;
&lt;br /&gt;
== スペクトルとフィルター ==&lt;br /&gt;
&lt;br /&gt;
=== スペクトル（[[周波数構成]]）===&lt;br /&gt;
&lt;br /&gt;
=== 各種フィルター ===&lt;br /&gt;
*特定の周波数帯域をカットする。つまり、特定の周波数帯域のみを通す（パスする）。&lt;br /&gt;
** lowpass (highcut)&lt;br /&gt;
** hightpass (lowcut)&lt;br /&gt;
** bandpass&lt;br /&gt;
** bandstop&lt;br /&gt;
*周波数構成が変わるので、音質が変わる。&lt;br /&gt;
*EQ（イコライザー）の一種：周波数構成を加工して音色を整える。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:05-03-33filters.png]]&lt;br /&gt;
&lt;br /&gt;
===lores~ ===&lt;br /&gt;
&lt;br /&gt;
;レゾナンス付きローパス・フィルター lores~&lt;br /&gt;
:カットオフ周波数より高い周波数をカットする。&lt;br /&gt;
:レゾナンス（Q値）でカットオフ周波数近くのカーブの緩急を変える。&lt;br /&gt;
ホワイトノイズ'''noise~'''とピンクノイズ'''pink~'''でフィルターの効果を確かめる。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Lores.png|800px|]]&lt;br /&gt;
&lt;br /&gt;
=== reson~ ===&lt;br /&gt;
&lt;br /&gt;
;バンドパスフィルタ reson~&lt;br /&gt;
&lt;br /&gt;
reson~は、中心周波数以外を減衰させます。&lt;br /&gt;
&lt;br /&gt;
Q値は100などの大きめの値を設定すると、角度が急になり、特定の周波数帯域を取り出せます。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Reson.png]]&lt;br /&gt;
&lt;br /&gt;
=== biquad~とfiltergraph~ ===&lt;br /&gt;
&lt;br /&gt;
biquad~フィルタは様々なフィルタを作成できるオブジェクトです。&lt;br /&gt;
&lt;br /&gt;
filtergraphは視覚的にフィルタを操作してフィルタの係数を計算します。&lt;br /&gt;
&lt;br /&gt;
係数をbiquad~に送るとフィルタを作ることができます。&lt;br /&gt;
&lt;br /&gt;
下の例は、ローパス（ハイカット）の例で、高周波の成分がカットされている様子が分かります。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Biquad.png]]&lt;br /&gt;
&lt;br /&gt;
鍵盤とエンベロープを付けた簡易シンセ&lt;br /&gt;
&lt;br /&gt;
[[ファイル:05-03-34filter.png]]&lt;br /&gt;
&lt;br /&gt;
== フォルマント合成 ==&lt;br /&gt;
楽器や人の声を特徴付けているのは周波数構成（スペクトル）である。&lt;br /&gt;
&lt;br /&gt;
弦などの振動から発生する音波は、ボディの空洞などを通して、共鳴し、特定の周波数が強められたり弱められたりする。&lt;br /&gt;
&lt;br /&gt;
これを共鳴（レゾナンス）という。&lt;br /&gt;
共鳴の結果として、その楽器や人に固有の周波数構成となり、特徴的な音色となる。&lt;br /&gt;
&lt;br /&gt;
共鳴によって生じた周波数帯域の山の部分をフォルマントという。&lt;br /&gt;
フォルマントの構成パターンは、ピアノ、ギター、バイオリン、歌声などの音色を識別する要素となる。&lt;br /&gt;
フォルマントは、周波数の低いほうから第1フォルマント(F1)、第2フォルマント(F2)、第3フォルマント(F3)と呼ぶ。&lt;br /&gt;
&lt;br /&gt;
人間の声の母音（アイウエオ）の識別を決めているのも、フォルマントである。&lt;br /&gt;
声帯の振動はノコギリ波に近いといわれており、この波形が、のど、口、鼻腔、横隔膜などで共鳴し、各母音の固有のフォルマントを構成する。&lt;br /&gt;
&lt;br /&gt;
アイウエオの3つフォルマントF1, F2, F3は、以下の通りで、合成するとアイウエオらしく聞こえる。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;母音&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;F1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;F2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;F3&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;あ&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;780&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;1200&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2520&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;い&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;310&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2300&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;3080&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;う &amp;lt;td&amp;gt;330&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;1120&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2350&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;え &amp;lt;td&amp;gt;470&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2040&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;お&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;420&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;710&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2530&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
下の例は、ノコギリ波をフォルマント合成して、母音らしく響かせている。&lt;br /&gt;
*人間の声帯の振動はノコギリ波に近い。&lt;br /&gt;
*声の周波数は微妙に揺らぐのでLFOでビブラートをかけると、母音らしくなる。&lt;br /&gt;
*ゲインは ''' F1 &amp;gt; F2 ＞ F3'''となっている。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Formant.png]]&lt;br /&gt;
&lt;br /&gt;
下の例は、キーボードから得たMIDIのピッチを周波数に変換して、ノコギリ波を生成し、フォルマント合成して、母音を発声している。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:FormantSynth.png|1000px|]]&lt;br /&gt;
&lt;br /&gt;
左はノコギリ波のスペクトル、右はフォルマント合成後のスペクトル&lt;br /&gt;
&lt;br /&gt;
== ディレイ Delay ==&lt;br /&gt;
*原音を時間を遅らせて再生する。エコー、やまびこ効果のこと。&lt;br /&gt;
*耳に聞こえてくる音は、原音以外に、壁や天井から跳ね返ってくる反響音が必ず含まれている。&lt;br /&gt;
*Max/MSPでは、tapin~とtapout~を使う。&lt;br /&gt;
&lt;br /&gt;
=== 基本的なディレイ ===&lt;br /&gt;
[[ファイル:05-12-01BasicDelay1.png]]&lt;br /&gt;
&lt;br /&gt;
* 原音を '''dry''' ディレイ音を '''wet''' と呼ぶ。&lt;br /&gt;
&lt;br /&gt;
=== dry, wetをLRに分配 === &lt;br /&gt;
[[ファイル:05-12-01BasicDelay2.png]]&lt;br /&gt;
&lt;br /&gt;
=== delayを入力に戻す(FeedBack) === &lt;br /&gt;
[[ファイル:05-12-04DelayFeedBack.png]]&lt;br /&gt;
&lt;br /&gt;
=== delayタイムの異なる複数種類のwetを合成 === &lt;br /&gt;
[[ファイル:05-12-02DelayMulti.png]]&lt;br /&gt;
&lt;br /&gt;
* Reverb : 原音に余韻，残響感を付加する。Delayの集合体。&lt;br /&gt;
&lt;br /&gt;
=== Delayの応用エフェクト === &lt;br /&gt;
&lt;br /&gt;
;delayタイムに手動で変化を加えて、ディレイ音を揺らがせる。&lt;br /&gt;
[[ファイル:05-12-06DelayYuragi.png]]&lt;br /&gt;
&lt;br /&gt;
;delayタイムにLFOで変化を加えて、ディレイ音を揺らがせる。&lt;br /&gt;
* Chorus :  Delay音が弱め。Feedbackが少なめ。&lt;br /&gt;
* Flanger : Delay音が強め。Feedbackが多め。&lt;br /&gt;
[[ファイル:05-12-10Chorus.png]]&lt;br /&gt;
&lt;br /&gt;
== マウスを使ったインタラクション ==&lt;br /&gt;
;世界初の電子楽器 '''テルミン'''&lt;br /&gt;
* [https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%AB%E3%83%9F%E3%83%B3 テルミン]&lt;br /&gt;
* テルミン　https://www.mandarinelectron.com/theremin/&lt;br /&gt;
* [https://www.youtube.com/watch?v=e6bSRcRAhnc Don't Worry, Be Happy on theremin]&lt;br /&gt;
* [http://www.thereminworld.com/Article/14129/moog-music-introduces-polyphonic-theremin Moog Music Introduces Polyphonic Theremin]&lt;br /&gt;
=== マウステルミン ===&lt;br /&gt;
==== マウスの値をシンセに入力 ====&lt;br /&gt;
;mousestatでマウスの位置と速度の値を取得し、アナログシンセの変数に入力&lt;br /&gt;
*マウスのボタンのON/OF&lt;br /&gt;
*マウス位置のx座標&lt;br /&gt;
*マウス位置のy座標&lt;br /&gt;
*マウス速度のx成分&lt;br /&gt;
*マウス速度のy成分&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Synth20131210v1s.png]]&lt;br /&gt;
&lt;br /&gt;
==== zmapを使って値を変換 ====&lt;br /&gt;
&lt;br /&gt;
*AからBに変化する値を、XからYに変化する値に変換する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zmap A B X Y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*0から255に変化する値を、0.0から1.0に変化する値に変換する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zmap 0 255 0. 1.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Zmap.png]]&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Zmap2.png]]&lt;br /&gt;
&lt;br /&gt;
;FM合成とAM合成のパラメータをマウスの状態から入手&lt;br /&gt;
&lt;br /&gt;
[[ファイル:MouseTerumin02.png]]&lt;br /&gt;
&lt;br /&gt;
=== キーボードのキーの値を取得 ===&lt;br /&gt;
&lt;br /&gt;
* key&lt;br /&gt;
**キーのアスキーコードを整数で取得する。&lt;br /&gt;
&lt;br /&gt;
== カメラ入力を使ったインタラクション ==&lt;br /&gt;
=== 動き検出 ===&lt;br /&gt;
#jit.grabを使ってカメラ画像を取得。qmetroでサンプリング間隔を指定。&lt;br /&gt;
#jit rgb2lumaを使ってカラーをモノクロに変換。&lt;br /&gt;
#t l l (triger list list)を使って、動画のフレームデータの連続したリストを得て、順番を入れ替える。&lt;br /&gt;
#jit.opのabsdiff(差の絶対値)を使って、２つのフレームの差分をとる。'''動きが検出される'''&lt;br /&gt;
#jit.3mで差分の平均と最大値を取得し、diff_meanとdiff_maxに送信&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Camera_diff01.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
;検出された動きの平均値と最大値からアナログシンセで音を生成する。&lt;br /&gt;
# diff_maxとdiff_meanを受け取り、&lt;br /&gt;
# zmapで値を変換して&lt;br /&gt;
# オシレータとLFOの周波数に入力している&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Camera_diff2synth.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 色の検出 ===&lt;br /&gt;
&lt;br /&gt;
# '''jit.findbounds'''で、画像の中の特定の色を検出して、その領域を含む矩形の座標を得る。&lt;br /&gt;
# '''jit.lcd'''で、得られた矩形を囲う長方形を描く。&lt;br /&gt;
&lt;br /&gt;
下記の例では、赤色の部分を検出し、面積を計算している。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Color_detect_maxpat.png|600px]]&lt;br /&gt;
&lt;br /&gt;
* 座標は、x軸が右向き、y軸が下向き。&lt;br /&gt;
* 得られる座標は、左上と右下。対角線上の頂点。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Zahyou.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
;検出された色からFM合成で音を生成する。&lt;br /&gt;
# 赤色を検出し、赤の領域の面積を求める、&lt;br /&gt;
# FM合成のキャリア周波数に面積に基づいていられた値を入力。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Color_detect_synth_maxpat.png|900px]]&lt;br /&gt;
&lt;br /&gt;
== マイク入力を使ったインタラクション ==&lt;br /&gt;
=== 基本周波数の検出 ===&lt;br /&gt;
&lt;br /&gt;
# '''fzero~'''で、マイク入力の音声の基本周波数を検出&lt;br /&gt;
# '''cycle~'''や'''phazer~'''で、周波数の音を発振&lt;br /&gt;
# '''ftom'''で周波数をMIDIのピッチに変換&lt;br /&gt;
#0.0から1.0の音量の値に127をかけて、ベロシティに変換&lt;br /&gt;
#'''makenote'''と'''noteout'''でMIDIのピアノの音を出す。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Fzero_noteout.png]]&lt;br /&gt;
&lt;br /&gt;
== 参考リンク ==&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/nime/wiimu/ Wiiを使ったライブ演奏ムービの例]:遠藤綾香氏の作品例([http://nime2008.casapaganini.org/ NIME2008]に出展)&lt;br /&gt;
* Chikashi Miyama: &amp;quot;Angry Sparrow&amp;quot;  http://www.youtube.com/watch?v=6U-TVZDaryE&lt;br /&gt;
&lt;br /&gt;
== 関連項目 ==&lt;br /&gt;
&lt;br /&gt;
== 参考 ==&lt;br /&gt;
[[作曲演習]]&lt;br /&gt;
&lt;br /&gt;
[[Category:授業|授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/Max/MSP%E3%81%AB%E3%82%88%E3%82%8B%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0</id>
		<title>Max/MSPによるオーディオプログラミング</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/Max/MSP%E3%81%AB%E3%82%88%E3%82%8B%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0"/>
				<updated>2025-10-03T05:16:33Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* 各種フィルター */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 音の物理的3要素 ==&lt;br /&gt;
通常、音の3要素とは、「高さ、強さ、音色」であるが、ここでは、「音色」の代わりに「長さ」を考慮する。&lt;br /&gt;
&lt;br /&gt;
;高さ&lt;br /&gt;
: 周波数, 音高&lt;br /&gt;
;強さ&lt;br /&gt;
: 音量, ボリューム&lt;br /&gt;
;長さ&lt;br /&gt;
: 時間, 空間&lt;br /&gt;
&lt;br /&gt;
== オシレータ ==&lt;br /&gt;
*発振器のこと。振動を発生させる器械のこと。&lt;br /&gt;
* サイン波 cycle~, ノコギリ波 phasor~&lt;br /&gt;
* 周波数&lt;br /&gt;
* adc~（マイク） dac~（スピーカー）&lt;br /&gt;
** a : アナログ：空気の振動&lt;br /&gt;
** d : デジタル：PCの中の数値&lt;br /&gt;
** c : コンバート&lt;br /&gt;
&lt;br /&gt;
* 音量操作　*~&lt;br /&gt;
* 加算合成　+~&lt;br /&gt;
&lt;br /&gt;
複数の周波数を足していくと、波形が変わっリ、音色が変わる。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Sinwav.png]]&lt;br /&gt;
* line~によるなめらかな変化&lt;br /&gt;
[[ファイル:Sinline.png]]&lt;br /&gt;
* MIDIのpitchを周波数に変換　mtof~ &lt;br /&gt;
[[ファイル:Sinemix.png]]&lt;br /&gt;
&lt;br /&gt;
== LFO ==&lt;br /&gt;
;Low Frequency Oscillator（低周波発振器）&lt;br /&gt;
* LFOで、音源オシレータにモジュレーション（変調）をかける。&lt;br /&gt;
* AMとFMの違い&lt;br /&gt;
* 演算子（「*」 や「+」）の位置は、オシレータ(cycle~)の前か後のどちらか？。&lt;br /&gt;
&lt;br /&gt;
=== AM (Amplitude Modulation)合成 ===&lt;br /&gt;
* 波形（'''シグナル'''）を乗算（掛け算）する&lt;br /&gt;
* 波形の振り幅が変わる。すなわち、音量が変わる。&lt;br /&gt;
** トレモロ効果&lt;br /&gt;
** 振り幅変化の周期と深さを変える。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:05-07-01amSynth.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== FM (Frequency Modulation)合成 ===&lt;br /&gt;
* 周波数（'''数値メッセージ'''）を加算（足し算）する&lt;br /&gt;
* 波形の周波数が変わる。すなわち、音高が変わる。&lt;br /&gt;
** ビブラート効果&lt;br /&gt;
** 周波数変化の周期と深さを変える。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:05-08-01 fmSynth.png]]&lt;br /&gt;
&lt;br /&gt;
==[[Envelope]](エンベロープ)==&lt;br /&gt;
*時間軸における音量変化。楽器ごとに個性がある。&lt;br /&gt;
*ピアノ、ギターなどはアタックが早く立ち上がるが、ストリングスはアタックがゆっくり立ち上がる。&lt;br /&gt;
* Maxではfunctionパッチを使って、音量変化を描く。&lt;br /&gt;
** クリックで点が増える。シフトクリックで点を消す。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:05-03-30envelope.png]]&lt;br /&gt;
&lt;br /&gt;
== フィルター ==&lt;br /&gt;
&lt;br /&gt;
=== スペクトル（[[周波数構成]]）===&lt;br /&gt;
&lt;br /&gt;
=== 各種フィルター ===&lt;br /&gt;
*特定の周波数帯域をカットする。つまり、特定の周波数帯域のみを通す（パスする）。&lt;br /&gt;
** lowpass (highcut)&lt;br /&gt;
** hightpass (lowcut)&lt;br /&gt;
** bandpass&lt;br /&gt;
** bandstop&lt;br /&gt;
*周波数構成が変わるので、音質が変わる。&lt;br /&gt;
*EQ（イコライザー）の一種：周波数構成を加工して音色を整える。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:05-03-33filters.png]]&lt;br /&gt;
&lt;br /&gt;
===lores~ ===&lt;br /&gt;
&lt;br /&gt;
;レゾナンス付きローパス・フィルター lores~&lt;br /&gt;
:カットオフ周波数より高い周波数をカットする。&lt;br /&gt;
:レゾナンス（Q値）でカットオフ周波数近くのカーブの緩急を変える。&lt;br /&gt;
ホワイトノイズ'''noise~'''とピンクノイズ'''pink~'''でフィルターの効果を確かめる。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Lores.png|800px|]]&lt;br /&gt;
&lt;br /&gt;
=== reson~ ===&lt;br /&gt;
&lt;br /&gt;
;バンドパスフィルタ reson~&lt;br /&gt;
&lt;br /&gt;
reson~は、中心周波数以外を減衰させます。&lt;br /&gt;
&lt;br /&gt;
Q値は100などの大きめの値を設定すると、角度が急になり、特定の周波数帯域を取り出せます。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Reson.png]]&lt;br /&gt;
&lt;br /&gt;
=== biquad~とfiltergraph~ ===&lt;br /&gt;
&lt;br /&gt;
biquad~フィルタは様々なフィルタを作成できるオブジェクトです。&lt;br /&gt;
&lt;br /&gt;
filtergraphは視覚的にフィルタを操作してフィルタの係数を計算します。&lt;br /&gt;
&lt;br /&gt;
係数をbiquad~に送るとフィルタを作ることができます。&lt;br /&gt;
&lt;br /&gt;
下の例は、ローパス（ハイカット）の例で、高周波の成分がカットされている様子が分かります。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Biquad.png]]&lt;br /&gt;
&lt;br /&gt;
鍵盤とエンベロープを付けた簡易シンセ&lt;br /&gt;
&lt;br /&gt;
[[ファイル:05-03-34filter.png]]&lt;br /&gt;
&lt;br /&gt;
== フォルマント合成 ==&lt;br /&gt;
楽器や人の声を特徴付けているのは周波数構成（スペクトル）である。&lt;br /&gt;
&lt;br /&gt;
弦などの振動から発生する音波は、ボディの空洞などを通して、共鳴し、特定の周波数が強められたり弱められたりする。&lt;br /&gt;
&lt;br /&gt;
これを共鳴（レゾナンス）という。&lt;br /&gt;
共鳴の結果として、その楽器や人に固有の周波数構成となり、特徴的な音色となる。&lt;br /&gt;
&lt;br /&gt;
共鳴によって生じた周波数帯域の山の部分をフォルマントという。&lt;br /&gt;
フォルマントの構成パターンは、ピアノ、ギター、バイオリン、歌声などの音色を識別する要素となる。&lt;br /&gt;
フォルマントは、周波数の低いほうから第1フォルマント(F1)、第2フォルマント(F2)、第3フォルマント(F3)と呼ぶ。&lt;br /&gt;
&lt;br /&gt;
人間の声の母音（アイウエオ）の識別を決めているのも、フォルマントである。&lt;br /&gt;
声帯の振動はノコギリ波に近いといわれており、この波形が、のど、口、鼻腔、横隔膜などで共鳴し、各母音の固有のフォルマントを構成する。&lt;br /&gt;
&lt;br /&gt;
アイウエオの3つフォルマントF1, F2, F3は、以下の通りで、合成するとアイウエオらしく聞こえる。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;母音&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;F1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;F2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;F3&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;あ&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;780&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;1200&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2520&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;い&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;310&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2300&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;3080&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;う &amp;lt;td&amp;gt;330&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;1120&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2350&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;え &amp;lt;td&amp;gt;470&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2040&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;お&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;420&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;710&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2530&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
下の例は、ノコギリ波をフォルマント合成して、母音らしく響かせている。&lt;br /&gt;
*人間の声帯の振動はノコギリ波に近い。&lt;br /&gt;
*声の周波数は微妙に揺らぐのでLFOでビブラートをかけると、母音らしくなる。&lt;br /&gt;
*ゲインは ''' F1 &amp;gt; F2 ＞ F3'''となっている。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Formant.png]]&lt;br /&gt;
&lt;br /&gt;
下の例は、キーボードから得たMIDIのピッチを周波数に変換して、ノコギリ波を生成し、フォルマント合成して、母音を発声している。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:FormantSynth.png|1000px|]]&lt;br /&gt;
&lt;br /&gt;
左はノコギリ波のスペクトル、右はフォルマント合成後のスペクトル&lt;br /&gt;
&lt;br /&gt;
== ディレイ Delay ==&lt;br /&gt;
*原音を時間を遅らせて再生する。エコー、やまびこ効果のこと。&lt;br /&gt;
*耳に聞こえてくる音は、原音以外に、壁や天井から跳ね返ってくる反響音が必ず含まれている。&lt;br /&gt;
*Max/MSPでは、tapin~とtapout~を使う。&lt;br /&gt;
&lt;br /&gt;
=== 基本的なディレイ ===&lt;br /&gt;
[[ファイル:05-12-01BasicDelay1.png]]&lt;br /&gt;
&lt;br /&gt;
* 原音を '''dry''' ディレイ音を '''wet''' と呼ぶ。&lt;br /&gt;
&lt;br /&gt;
=== dry, wetをLRに分配 === &lt;br /&gt;
[[ファイル:05-12-01BasicDelay2.png]]&lt;br /&gt;
&lt;br /&gt;
=== delayを入力に戻す(FeedBack) === &lt;br /&gt;
[[ファイル:05-12-04DelayFeedBack.png]]&lt;br /&gt;
&lt;br /&gt;
=== delayタイムの異なる複数種類のwetを合成 === &lt;br /&gt;
[[ファイル:05-12-02DelayMulti.png]]&lt;br /&gt;
&lt;br /&gt;
* Reverb : 原音に余韻，残響感を付加する。Delayの集合体。&lt;br /&gt;
&lt;br /&gt;
=== Delayの応用エフェクト === &lt;br /&gt;
&lt;br /&gt;
;delayタイムに手動で変化を加えて、ディレイ音を揺らがせる。&lt;br /&gt;
[[ファイル:05-12-06DelayYuragi.png]]&lt;br /&gt;
&lt;br /&gt;
;delayタイムにLFOで変化を加えて、ディレイ音を揺らがせる。&lt;br /&gt;
* Chorus :  Delay音が弱め。Feedbackが少なめ。&lt;br /&gt;
* Flanger : Delay音が強め。Feedbackが多め。&lt;br /&gt;
[[ファイル:05-12-10Chorus.png]]&lt;br /&gt;
&lt;br /&gt;
== マウスを使ったインタラクション ==&lt;br /&gt;
;世界初の電子楽器 '''テルミン'''&lt;br /&gt;
* [https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%AB%E3%83%9F%E3%83%B3 テルミン]&lt;br /&gt;
* テルミン　https://www.mandarinelectron.com/theremin/&lt;br /&gt;
* [https://www.youtube.com/watch?v=e6bSRcRAhnc Don't Worry, Be Happy on theremin]&lt;br /&gt;
* [http://www.thereminworld.com/Article/14129/moog-music-introduces-polyphonic-theremin Moog Music Introduces Polyphonic Theremin]&lt;br /&gt;
=== マウステルミン ===&lt;br /&gt;
==== マウスの値をシンセに入力 ====&lt;br /&gt;
;mousestatでマウスの位置と速度の値を取得し、アナログシンセの変数に入力&lt;br /&gt;
*マウスのボタンのON/OF&lt;br /&gt;
*マウス位置のx座標&lt;br /&gt;
*マウス位置のy座標&lt;br /&gt;
*マウス速度のx成分&lt;br /&gt;
*マウス速度のy成分&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Synth20131210v1s.png]]&lt;br /&gt;
&lt;br /&gt;
==== zmapを使って値を変換 ====&lt;br /&gt;
&lt;br /&gt;
*AからBに変化する値を、XからYに変化する値に変換する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zmap A B X Y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*0から255に変化する値を、0.0から1.0に変化する値に変換する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zmap 0 255 0. 1.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Zmap.png]]&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Zmap2.png]]&lt;br /&gt;
&lt;br /&gt;
;FM合成とAM合成のパラメータをマウスの状態から入手&lt;br /&gt;
&lt;br /&gt;
[[ファイル:MouseTerumin02.png]]&lt;br /&gt;
&lt;br /&gt;
=== キーボードのキーの値を取得 ===&lt;br /&gt;
&lt;br /&gt;
* key&lt;br /&gt;
**キーのアスキーコードを整数で取得する。&lt;br /&gt;
&lt;br /&gt;
== カメラ入力を使ったインタラクション ==&lt;br /&gt;
=== 動き検出 ===&lt;br /&gt;
#jit.grabを使ってカメラ画像を取得。qmetroでサンプリング間隔を指定。&lt;br /&gt;
#jit rgb2lumaを使ってカラーをモノクロに変換。&lt;br /&gt;
#t l l (triger list list)を使って、動画のフレームデータの連続したリストを得て、順番を入れ替える。&lt;br /&gt;
#jit.opのabsdiff(差の絶対値)を使って、２つのフレームの差分をとる。'''動きが検出される'''&lt;br /&gt;
#jit.3mで差分の平均と最大値を取得し、diff_meanとdiff_maxに送信&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Camera_diff01.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
;検出された動きの平均値と最大値からアナログシンセで音を生成する。&lt;br /&gt;
# diff_maxとdiff_meanを受け取り、&lt;br /&gt;
# zmapで値を変換して&lt;br /&gt;
# オシレータとLFOの周波数に入力している&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Camera_diff2synth.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 色の検出 ===&lt;br /&gt;
&lt;br /&gt;
# '''jit.findbounds'''で、画像の中の特定の色を検出して、その領域を含む矩形の座標を得る。&lt;br /&gt;
# '''jit.lcd'''で、得られた矩形を囲う長方形を描く。&lt;br /&gt;
&lt;br /&gt;
下記の例では、赤色の部分を検出し、面積を計算している。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Color_detect_maxpat.png|600px]]&lt;br /&gt;
&lt;br /&gt;
* 座標は、x軸が右向き、y軸が下向き。&lt;br /&gt;
* 得られる座標は、左上と右下。対角線上の頂点。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Zahyou.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
;検出された色からFM合成で音を生成する。&lt;br /&gt;
# 赤色を検出し、赤の領域の面積を求める、&lt;br /&gt;
# FM合成のキャリア周波数に面積に基づいていられた値を入力。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Color_detect_synth_maxpat.png|900px]]&lt;br /&gt;
&lt;br /&gt;
== マイク入力を使ったインタラクション ==&lt;br /&gt;
=== 基本周波数の検出 ===&lt;br /&gt;
&lt;br /&gt;
# '''fzero~'''で、マイク入力の音声の基本周波数を検出&lt;br /&gt;
# '''cycle~'''や'''phazer~'''で、周波数の音を発振&lt;br /&gt;
# '''ftom'''で周波数をMIDIのピッチに変換&lt;br /&gt;
#0.0から1.0の音量の値に127をかけて、ベロシティに変換&lt;br /&gt;
#'''makenote'''と'''noteout'''でMIDIのピアノの音を出す。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Fzero_noteout.png]]&lt;br /&gt;
&lt;br /&gt;
== 参考リンク ==&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/nime/wiimu/ Wiiを使ったライブ演奏ムービの例]:遠藤綾香氏の作品例([http://nime2008.casapaganini.org/ NIME2008]に出展)&lt;br /&gt;
* Chikashi Miyama: &amp;quot;Angry Sparrow&amp;quot;  http://www.youtube.com/watch?v=6U-TVZDaryE&lt;br /&gt;
&lt;br /&gt;
== 関連項目 ==&lt;br /&gt;
&lt;br /&gt;
== 参考 ==&lt;br /&gt;
[[作曲演習]]&lt;br /&gt;
&lt;br /&gt;
[[Category:授業|授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	<entry>
		<id>http://w3.kuhalabo.net/wiki/index.php/Max/MSP%E3%81%AB%E3%82%88%E3%82%8B%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0</id>
		<title>Max/MSPによるオーディオプログラミング</title>
		<link rel="alternate" type="text/html" href="http://w3.kuhalabo.net/wiki/index.php/Max/MSP%E3%81%AB%E3%82%88%E3%82%8B%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0"/>
				<updated>2025-10-03T05:12:27Z</updated>
		
		<summary type="html">&lt;p&gt;Kuha：/* 各種フィルター */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 音の物理的3要素 ==&lt;br /&gt;
通常、音の3要素とは、「高さ、強さ、音色」であるが、ここでは、「音色」の代わりに「長さ」を考慮する。&lt;br /&gt;
&lt;br /&gt;
;高さ&lt;br /&gt;
: 周波数, 音高&lt;br /&gt;
;強さ&lt;br /&gt;
: 音量, ボリューム&lt;br /&gt;
;長さ&lt;br /&gt;
: 時間, 空間&lt;br /&gt;
&lt;br /&gt;
== オシレータ ==&lt;br /&gt;
*発振器のこと。振動を発生させる器械のこと。&lt;br /&gt;
* サイン波 cycle~, ノコギリ波 phasor~&lt;br /&gt;
* 周波数&lt;br /&gt;
* adc~（マイク） dac~（スピーカー）&lt;br /&gt;
** a : アナログ：空気の振動&lt;br /&gt;
** d : デジタル：PCの中の数値&lt;br /&gt;
** c : コンバート&lt;br /&gt;
&lt;br /&gt;
* 音量操作　*~&lt;br /&gt;
* 加算合成　+~&lt;br /&gt;
&lt;br /&gt;
複数の周波数を足していくと、波形が変わっリ、音色が変わる。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Sinwav.png]]&lt;br /&gt;
* line~によるなめらかな変化&lt;br /&gt;
[[ファイル:Sinline.png]]&lt;br /&gt;
* MIDIのpitchを周波数に変換　mtof~ &lt;br /&gt;
[[ファイル:Sinemix.png]]&lt;br /&gt;
&lt;br /&gt;
== LFO ==&lt;br /&gt;
;Low Frequency Oscillator（低周波発振器）&lt;br /&gt;
* LFOで、音源オシレータにモジュレーション（変調）をかける。&lt;br /&gt;
* AMとFMの違い&lt;br /&gt;
* 演算子（「*」 や「+」）の位置は、オシレータ(cycle~)の前か後のどちらか？。&lt;br /&gt;
&lt;br /&gt;
=== AM (Amplitude Modulation)合成 ===&lt;br /&gt;
* 波形（'''シグナル'''）を乗算（掛け算）する&lt;br /&gt;
* 波形の振り幅が変わる。すなわち、音量が変わる。&lt;br /&gt;
** トレモロ効果&lt;br /&gt;
** 振り幅変化の周期と深さを変える。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:05-07-01amSynth.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== FM (Frequency Modulation)合成 ===&lt;br /&gt;
* 周波数（'''数値メッセージ'''）を加算（足し算）する&lt;br /&gt;
* 波形の周波数が変わる。すなわち、音高が変わる。&lt;br /&gt;
** ビブラート効果&lt;br /&gt;
** 周波数変化の周期と深さを変える。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:05-08-01 fmSynth.png]]&lt;br /&gt;
&lt;br /&gt;
==[[Envelope]](エンベロープ)==&lt;br /&gt;
*時間軸における音量変化。楽器ごとに個性がある。&lt;br /&gt;
*ピアノ、ギターなどはアタックが早く立ち上がるが、ストリングスはアタックがゆっくり立ち上がる。&lt;br /&gt;
* Maxではfunctionパッチを使って、音量変化を描く。&lt;br /&gt;
** クリックで点が増える。シフトクリックで点を消す。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:05-03-30envelope.png]]&lt;br /&gt;
&lt;br /&gt;
== フィルター ==&lt;br /&gt;
&lt;br /&gt;
=== スペクトル（[[周波数構成]]）===&lt;br /&gt;
&lt;br /&gt;
=== 各種フィルター ===&lt;br /&gt;
*特定の周波数帯域をカットする。つまり、特定の周波数帯域のみを通す（パスする）。&lt;br /&gt;
** lowpass (highcut)&lt;br /&gt;
** hightpass (lowcut)&lt;br /&gt;
** bandpass&lt;br /&gt;
** bandstop&lt;br /&gt;
*周波数構成が変わるので、音質が変わる。&lt;br /&gt;
*EQ（イコライザー）の一種&lt;br /&gt;
&lt;br /&gt;
[[ファイル:05-03-33filters.png]]&lt;br /&gt;
&lt;br /&gt;
===lores~ ===&lt;br /&gt;
&lt;br /&gt;
;レゾナンス付きローパス・フィルター lores~&lt;br /&gt;
:カットオフ周波数より高い周波数をカットする。&lt;br /&gt;
:レゾナンス（Q値）でカットオフ周波数近くのカーブの緩急を変える。&lt;br /&gt;
ホワイトノイズ'''noise~'''とピンクノイズ'''pink~'''でフィルターの効果を確かめる。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Lores.png|800px|]]&lt;br /&gt;
&lt;br /&gt;
=== reson~ ===&lt;br /&gt;
&lt;br /&gt;
;バンドパスフィルタ reson~&lt;br /&gt;
&lt;br /&gt;
reson~は、中心周波数以外を減衰させます。&lt;br /&gt;
&lt;br /&gt;
Q値は100などの大きめの値を設定すると、角度が急になり、特定の周波数帯域を取り出せます。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Reson.png]]&lt;br /&gt;
&lt;br /&gt;
=== biquad~とfiltergraph~ ===&lt;br /&gt;
&lt;br /&gt;
biquad~フィルタは様々なフィルタを作成できるオブジェクトです。&lt;br /&gt;
&lt;br /&gt;
filtergraphは視覚的にフィルタを操作してフィルタの係数を計算します。&lt;br /&gt;
&lt;br /&gt;
係数をbiquad~に送るとフィルタを作ることができます。&lt;br /&gt;
&lt;br /&gt;
下の例は、ローパス（ハイカット）の例で、高周波の成分がカットされている様子が分かります。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Biquad.png]]&lt;br /&gt;
&lt;br /&gt;
鍵盤とエンベロープを付けた簡易シンセ&lt;br /&gt;
&lt;br /&gt;
[[ファイル:05-03-34filter.png]]&lt;br /&gt;
&lt;br /&gt;
== フォルマント合成 ==&lt;br /&gt;
楽器や人の声を特徴付けているのは周波数構成（スペクトル）である。&lt;br /&gt;
&lt;br /&gt;
弦などの振動から発生する音波は、ボディの空洞などを通して、共鳴し、特定の周波数が強められたり弱められたりする。&lt;br /&gt;
&lt;br /&gt;
これを共鳴（レゾナンス）という。&lt;br /&gt;
共鳴の結果として、その楽器や人に固有の周波数構成となり、特徴的な音色となる。&lt;br /&gt;
&lt;br /&gt;
共鳴によって生じた周波数帯域の山の部分をフォルマントという。&lt;br /&gt;
フォルマントの構成パターンは、ピアノ、ギター、バイオリン、歌声などの音色を識別する要素となる。&lt;br /&gt;
フォルマントは、周波数の低いほうから第1フォルマント(F1)、第2フォルマント(F2)、第3フォルマント(F3)と呼ぶ。&lt;br /&gt;
&lt;br /&gt;
人間の声の母音（アイウエオ）の識別を決めているのも、フォルマントである。&lt;br /&gt;
声帯の振動はノコギリ波に近いといわれており、この波形が、のど、口、鼻腔、横隔膜などで共鳴し、各母音の固有のフォルマントを構成する。&lt;br /&gt;
&lt;br /&gt;
アイウエオの3つフォルマントF1, F2, F3は、以下の通りで、合成するとアイウエオらしく聞こえる。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;母音&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;F1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;F2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;F3&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;あ&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;780&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;1200&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2520&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;い&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;310&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2300&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;3080&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;う &amp;lt;td&amp;gt;330&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;1120&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2350&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;え &amp;lt;td&amp;gt;470&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2040&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;お&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;420&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;710&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2530&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
下の例は、ノコギリ波をフォルマント合成して、母音らしく響かせている。&lt;br /&gt;
*人間の声帯の振動はノコギリ波に近い。&lt;br /&gt;
*声の周波数は微妙に揺らぐのでLFOでビブラートをかけると、母音らしくなる。&lt;br /&gt;
*ゲインは ''' F1 &amp;gt; F2 ＞ F3'''となっている。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Formant.png]]&lt;br /&gt;
&lt;br /&gt;
下の例は、キーボードから得たMIDIのピッチを周波数に変換して、ノコギリ波を生成し、フォルマント合成して、母音を発声している。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:FormantSynth.png|1000px|]]&lt;br /&gt;
&lt;br /&gt;
左はノコギリ波のスペクトル、右はフォルマント合成後のスペクトル&lt;br /&gt;
&lt;br /&gt;
== ディレイ Delay ==&lt;br /&gt;
*原音を時間を遅らせて再生する。エコー、やまびこ効果のこと。&lt;br /&gt;
*耳に聞こえてくる音は、原音以外に、壁や天井から跳ね返ってくる反響音が必ず含まれている。&lt;br /&gt;
*Max/MSPでは、tapin~とtapout~を使う。&lt;br /&gt;
&lt;br /&gt;
=== 基本的なディレイ ===&lt;br /&gt;
[[ファイル:05-12-01BasicDelay1.png]]&lt;br /&gt;
&lt;br /&gt;
* 原音を '''dry''' ディレイ音を '''wet''' と呼ぶ。&lt;br /&gt;
&lt;br /&gt;
=== dry, wetをLRに分配 === &lt;br /&gt;
[[ファイル:05-12-01BasicDelay2.png]]&lt;br /&gt;
&lt;br /&gt;
=== delayを入力に戻す(FeedBack) === &lt;br /&gt;
[[ファイル:05-12-04DelayFeedBack.png]]&lt;br /&gt;
&lt;br /&gt;
=== delayタイムの異なる複数種類のwetを合成 === &lt;br /&gt;
[[ファイル:05-12-02DelayMulti.png]]&lt;br /&gt;
&lt;br /&gt;
* Reverb : 原音に余韻，残響感を付加する。Delayの集合体。&lt;br /&gt;
&lt;br /&gt;
=== Delayの応用エフェクト === &lt;br /&gt;
&lt;br /&gt;
;delayタイムに手動で変化を加えて、ディレイ音を揺らがせる。&lt;br /&gt;
[[ファイル:05-12-06DelayYuragi.png]]&lt;br /&gt;
&lt;br /&gt;
;delayタイムにLFOで変化を加えて、ディレイ音を揺らがせる。&lt;br /&gt;
* Chorus :  Delay音が弱め。Feedbackが少なめ。&lt;br /&gt;
* Flanger : Delay音が強め。Feedbackが多め。&lt;br /&gt;
[[ファイル:05-12-10Chorus.png]]&lt;br /&gt;
&lt;br /&gt;
== マウスを使ったインタラクション ==&lt;br /&gt;
;世界初の電子楽器 '''テルミン'''&lt;br /&gt;
* [https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%AB%E3%83%9F%E3%83%B3 テルミン]&lt;br /&gt;
* テルミン　https://www.mandarinelectron.com/theremin/&lt;br /&gt;
* [https://www.youtube.com/watch?v=e6bSRcRAhnc Don't Worry, Be Happy on theremin]&lt;br /&gt;
* [http://www.thereminworld.com/Article/14129/moog-music-introduces-polyphonic-theremin Moog Music Introduces Polyphonic Theremin]&lt;br /&gt;
=== マウステルミン ===&lt;br /&gt;
==== マウスの値をシンセに入力 ====&lt;br /&gt;
;mousestatでマウスの位置と速度の値を取得し、アナログシンセの変数に入力&lt;br /&gt;
*マウスのボタンのON/OF&lt;br /&gt;
*マウス位置のx座標&lt;br /&gt;
*マウス位置のy座標&lt;br /&gt;
*マウス速度のx成分&lt;br /&gt;
*マウス速度のy成分&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Synth20131210v1s.png]]&lt;br /&gt;
&lt;br /&gt;
==== zmapを使って値を変換 ====&lt;br /&gt;
&lt;br /&gt;
*AからBに変化する値を、XからYに変化する値に変換する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zmap A B X Y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*0から255に変化する値を、0.0から1.0に変化する値に変換する。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zmap 0 255 0. 1.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Zmap.png]]&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Zmap2.png]]&lt;br /&gt;
&lt;br /&gt;
;FM合成とAM合成のパラメータをマウスの状態から入手&lt;br /&gt;
&lt;br /&gt;
[[ファイル:MouseTerumin02.png]]&lt;br /&gt;
&lt;br /&gt;
=== キーボードのキーの値を取得 ===&lt;br /&gt;
&lt;br /&gt;
* key&lt;br /&gt;
**キーのアスキーコードを整数で取得する。&lt;br /&gt;
&lt;br /&gt;
== カメラ入力を使ったインタラクション ==&lt;br /&gt;
=== 動き検出 ===&lt;br /&gt;
#jit.grabを使ってカメラ画像を取得。qmetroでサンプリング間隔を指定。&lt;br /&gt;
#jit rgb2lumaを使ってカラーをモノクロに変換。&lt;br /&gt;
#t l l (triger list list)を使って、動画のフレームデータの連続したリストを得て、順番を入れ替える。&lt;br /&gt;
#jit.opのabsdiff(差の絶対値)を使って、２つのフレームの差分をとる。'''動きが検出される'''&lt;br /&gt;
#jit.3mで差分の平均と最大値を取得し、diff_meanとdiff_maxに送信&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Camera_diff01.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
;検出された動きの平均値と最大値からアナログシンセで音を生成する。&lt;br /&gt;
# diff_maxとdiff_meanを受け取り、&lt;br /&gt;
# zmapで値を変換して&lt;br /&gt;
# オシレータとLFOの周波数に入力している&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Camera_diff2synth.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 色の検出 ===&lt;br /&gt;
&lt;br /&gt;
# '''jit.findbounds'''で、画像の中の特定の色を検出して、その領域を含む矩形の座標を得る。&lt;br /&gt;
# '''jit.lcd'''で、得られた矩形を囲う長方形を描く。&lt;br /&gt;
&lt;br /&gt;
下記の例では、赤色の部分を検出し、面積を計算している。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Color_detect_maxpat.png|600px]]&lt;br /&gt;
&lt;br /&gt;
* 座標は、x軸が右向き、y軸が下向き。&lt;br /&gt;
* 得られる座標は、左上と右下。対角線上の頂点。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Zahyou.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
;検出された色からFM合成で音を生成する。&lt;br /&gt;
# 赤色を検出し、赤の領域の面積を求める、&lt;br /&gt;
# FM合成のキャリア周波数に面積に基づいていられた値を入力。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Color_detect_synth_maxpat.png|900px]]&lt;br /&gt;
&lt;br /&gt;
== マイク入力を使ったインタラクション ==&lt;br /&gt;
=== 基本周波数の検出 ===&lt;br /&gt;
&lt;br /&gt;
# '''fzero~'''で、マイク入力の音声の基本周波数を検出&lt;br /&gt;
# '''cycle~'''や'''phazer~'''で、周波数の音を発振&lt;br /&gt;
# '''ftom'''で周波数をMIDIのピッチに変換&lt;br /&gt;
#0.0から1.0の音量の値に127をかけて、ベロシティに変換&lt;br /&gt;
#'''makenote'''と'''noteout'''でMIDIのピアノの音を出す。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Fzero_noteout.png]]&lt;br /&gt;
&lt;br /&gt;
== 参考リンク ==&lt;br /&gt;
*[http://www.kuhalabo.net/~kuha/nime/wiimu/ Wiiを使ったライブ演奏ムービの例]:遠藤綾香氏の作品例([http://nime2008.casapaganini.org/ NIME2008]に出展)&lt;br /&gt;
* Chikashi Miyama: &amp;quot;Angry Sparrow&amp;quot;  http://www.youtube.com/watch?v=6U-TVZDaryE&lt;br /&gt;
&lt;br /&gt;
== 関連項目 ==&lt;br /&gt;
&lt;br /&gt;
== 参考 ==&lt;br /&gt;
[[作曲演習]]&lt;br /&gt;
&lt;br /&gt;
[[Category:授業|授業]]&lt;/div&gt;</summary>
		<author><name>Kuha</name></author>	</entry>

	</feed>