Processingのソースを参考にして、Flashで作るsketch練習の続き。
教材は引き続き、パリで行われたらしいProcessing workshopのソース。
ダウンロードしたProcessingのソース「01_Classes」>「_08_Arbre_Fractale」をFlashにした。
Processing workshop in Paris - code sources | v3ga
http://v3ga.net/blog/2008/04/processing-workshop-in-paris-code-sources/
再帰でフラクタルを描くやつ。画面のXマウス位置に応じて、枝の角度が変わるようになってる。
Flashで作ったけど機能としてはProcessingと同じようにできた。
Processingのやつは再帰的に線を描画していく中で、描画に対する指定が加算されていくから、特別に座標や角度の計算を気にする必要は無い。
void dessine(float x, float y, float angle) {
pushMatrix();
translate(x,y,0);
rotate(angle);
line(0,0,0,-longueur);
dessineFilles(float(mouseX)/float(width)*PI/5);
popMatrix();
}
それを、まぁFlashならではということで、それぞれの線はまっすぐ上向きで同じだけど、Spriteの入れ子入れ子で回転角度が加算されているような構造にしてみた。Spriteの配置位置は(0,0)から親Spriteの線の長さ分だけ上方向にずらす感じ。
EnterFrameMouseMoveでmouseXを取って角度が変わるけど、線の描画を毎度行ってるのではなく各Spriteの角度を変化させてる。このTree型のフラクタルの枝の角度が変わるのが楽しかったので、パラメータをいじれるようにしてみた。
今回も負荷は高め。そしてコンテンツ開始と同時に再帰再帰でフラクタルを描くから、環境によっては15秒ルールで厳しいかも。
private function draw( lineAngle:Number ) : void {
rotation = lineAngle;
//scaleX = lineAngle / 180 * 2;
drawChildren( lineAngle );
}
なんか回転だけじゃなく、適当にsacleXとかやってみたりしたら、全く予想もしない図柄になってしまった。
ソース:TreeFractal_AS3.zip
ソース:TreeFractal_AS3param.zip
Related posts
Processingのソースを参考にして、Flashで作るsketchの練習。
今回の教材は、パリで行われたらしいProcessing workshopのソース。
Processing workshop in Paris - code sources | v3ga
http://v3ga.net/blog/2008/04/processing-workshop-in-paris-code-sources/
その中から、いくつかをFlashで作って遊んでみた。
まずは、ダウンロードしたProcessingのソース「01_Classes」>「_04_Points_Proximites」で動作を確認。
ドラッグすると、赤い円が描画され、画面の端で跳ね返りながら、円同士が近づくと、線で繋がれる。
さすが、パリでのworkshopということだけあって、コメントや変数名がフランス語。それを英語に変換しつつ、AS 3.0 用に直したりして、Flashにソースを移植。
で、Flashで作ったのがこれ。ドラッグじゃなくて、マウスダウンで描画する。
円の数が増えると大変なことになるので無理をしないことをおすすめ。
Processingでは毎フレームdrawで背景ベタ塗りと円と線を描いているのだけど、このFlashではShapeの座標を移動させる方法でやってみた。
Flashでも線は毎フレーム描画。Processingのと同じように配列for文の入れ子で全ての円に対し距離判定して、線を描いているけど、やっぱきびしい。
それにProcessingのやつでは「F」キーで円の移動残像モードとかやってるけど、毎フレーム半透明の塗りで全面を覆っていくとかFlashじゃ「もういや!」って感じでやってない。
ソース:PointsProximities_AS3.zip
Related posts
さて、リポジトリを作ってみるか。ということで、
[Mac]Leopard に入っているSubversion確認
http://violentcoding.com/blog/2008/04/16/archives/115
の続き。
ホームの「書類」に「test」フォルダを作っておいて、myRepositoryというリポジトリでも作ってみる。
svnadmin の create でリポジトリとなるディレクトリのパスを指定してやる。
$ svnadmin create Documents/test/myRepository
はい、終了。
これだけじゃ寂しいので、ちゃんとできてるか svn の checkout で確認してやる。
さっき作ったリポジトリをURLで書いてあげて・・・
$ svn co file://localhost/Users/violentcoding/Documents/test/myRepository
どうかな?
Checked out revision 0.
うん、OK。
Related posts
そういえば、Leopardに標準で入っているという噂のSubversionを全く見ていなかったので、まずは確認。
ターミナルで
$ svn --version
おぉ、いましたね!
svn, version 1.4.4 (r25188)
compiled Sep 23 2007, 22:32:34
Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
The following repository access (RA) modules are available:
* ra_dav : Module for accessing a repository via WebDAV (DeltaV) protocol.
- handles 'http' scheme
- handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
- handles 'file' scheme
よし、ヘルプを。
$ svn help
でました。
usage: svn <subcommand> [options] [args]
Subversion command-line client, version 1.4.4.
Type 'svn help <subcommand>' for help on a specific subcommand.
Type 'svn --version' to see the program version and RA modules
or 'svn --version --quiet' to see just the version number.
Most subcommands take file and/or directory arguments, recursing
on the directories. If no arguments are supplied to such a
command, it recurses on the current directory (inclusive) by default.
Available subcommands:
add
blame (praise, annotate, ann)
cat
checkout (co)
cleanup
commit (ci)
copy (cp)
delete (del, remove, rm)
diff (di)
export
help (?, h)
import
info
list (ls)
lock
log
merge
mkdir
move (mv, rename, ren)
propdel (pdel, pd)
propedit (pedit, pe)
propget (pget, pg)
proplist (plist, pl)
propset (pset, ps)
resolved
revert
status (stat, st)
switch (sw)
unlock
update (up)
Subversion is a tool for version control.
For additional information, see http://subversion.tigris.org/
じゃあ、svnadmin。
$ svnadmin --version
うんうん。
svnadmin, version 1.4.4 (r25188)
compiled Sep 23 2007, 22:32:34
Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
The following repository back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repository.
で、ヘルプ。
$ svnadmin help
どーん!
general usage: svnadmin SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]
Type 'svnadmin help <subcommand>' for help on a specific subcommand.
Type 'svnadmin --version' to see the program version and FS modules.
Available subcommands:
crashtest
create
deltify
dump
help (?, h)
hotcopy
list-dblogs
list-unused-dblogs
load
lslocks
lstxns
recover
rmlocks
rmtxns
setlog
verify
さて、リポジトリを作ってみるか
Related posts