前言撤回日記

Post PostScript

100520monroe01.jpg
100520monroe02.jpg
前回に引き続きタイトルにPostって言葉の入ったPostです、とか書くともう意味不明。

最近はAdobe製グラフィックソフトも十分スクリプタブルになってきて、JavaScript、AppleScript、VBScriptでかなりのところまで操作できるようになった。

こうなるとPostScriptなんてウジウジやってられないのであり、年に一度、年末にしか使わないスキルなど単なる持ち腐れである。

JavaScriptはWebの仕事で馴染みがあるし、なにより開発環境やデバッグ環境、実行環境としても断然やりやすい。Scriptographerなんてオモシロそうなプラグインもある。

というワケでこれからはPostScriptさんには裏方として働いていただきますので今後ともよろしくお願いいたしますと思ったりした。

まだJavaScriptで数万単位のオブジェクト扱ったこととかはないのだけれども。

postcard 2010

100519postcard.jpg
あけまして5月です。もうじき半年が経とうとしています。バカか。

昨年末は押せ押せムードで時間が足らず、今年の年賀状は若干手抜きになった。
手抜きというか、ここ数年は毎回手書きPostScriptによるタイポグラフィが基本テーマだったのだけれども、今回はPostScriptはぜんぜん書いてなくて、パスの長さを調べるのにJavaScriptを使っただけ。

本来ならばここから可読の境界を探る的な段階を踏むべきなのに、あいにく時間切れでそこまでもいかなかった。しかもオフセット印刷の入稿期限はすでに過ぎていて、オンデマンド印刷しかできず。
それにしても、まだ勤め人だった10年くらい前に試したことがあるオンデマンド印刷、当時と比べてやはり技術は進歩しているのだなあ、という実感がある。

コレを受け取った友人から、毎度年賀状がおもろいけど池田亮司とか好き?と言われたが、寡聞にして存じませんでした。
the official ryoji ikeda web site

おお、なるほど、ちょっと好きかも。
まあ、好きって言うことであれば国内だけ見ても杉崎真之助さんとか大杉学さんとか好きな作風の人いっぱいいます。

SHINNOSKE INC. WORK
702 NANAMARUNI DESIGN WORKS

Peter De Jong Attractor with AS3.0

090411peterdejong.jpg
ジワジワと描画されます。停止・再描画は画面クリック。


なんかあいかわらず書くこともないので今さら感あふれるエントリーでお茶を濁す。

昨年、FlashをCS4の販売直前にCS3にアップデートした。我ながらアホかと思うものの目算が外れただけで何の考えもなしにそうしたワケではない。他人様にはどーでもいい話であるが。

で、実際にはアップデート前からさして不満はなかったのだけれども、ActionScript3.0もそろそろやっとかないとキャッチアップできなくなる、という危機感から購入してみたという。Flexなどやってられん。

その後しばらく時間を投資して多少は慣れてきたので、以前にActionScript2.0で作ってココに載せたPeter De Jongアトラクタをプロットする作例を3.0で書き直したモノを載っけておきます。

今回はコードと.Flaファイルもさらしものに。

サンプル(.zip)ファイル


var p:Point = new Point();
var mtrx:Matrix = new Matrix();
var _x:Number, _y:Number, dx:Number, dy:Number, a:Number, b:Number, c:Number, d:Number;
_x = _y = 1;
dx = dy = 0;
var stageW:uint = stage.stageWidth;
var stageH:uint = stage.stageHeight;
var step:uint = 10000;//一度に描くドットの数
var flag:Boolean = true;
var eraser:Rectangle = new Rectangle(0, 0, stageW, stageH);//消しゴム
var bgColor:uint = 0x00000000;
var bmd:BitmapData = new BitmapData(stageW, stageH, false, bgColor);
var bm:Bitmap = new Bitmap(bmd);

addChild(bm);

//インク
var point_mc:Shape = new Shape();
point_mc.graphics.beginFill(0xFFFFFF, 0.1);
point_mc.graphics.drawRect(0, 0, 1, 1);

//BitmapData上のピクセルにインクを置く
function plot(m):void {
var m = m;
bmd.draw(point_mc, m);
}
//BitmapDataをクリア
function clearBitmapData() {
bmd.fillRect(eraser, bgColor);
}

//初期値をランダムでセット
//(これだとカオスが発生するとは限らないが……)
function init():void {
clearBitmapData();
a = (Math.floor(Math.random()*100))*0.1-2.5;
b = (Math.floor(Math.random()*100))*0.1-2.5;
c = (Math.floor(Math.random()*100))*0.1-2.5;
d = (Math.floor(Math.random()*100))*0.1-2.5;
}

//Peter De Jong アトラクタを書く
function makePeterDeJong(e:Event):void {
for (var i:uint = 0; i< = step; i++) {
_x = Math.sin(a * dy) - Math.cos(b * dx);
_y = Math.sin(c * dx) - Math.cos(d * dy);
dx = _x;
dy = _y;
mtrx.tx = (stageW/4) * _x + stageW/2;
mtrx.ty = (stageH/4) * _y + stageH/2;
plot(mtrx);
}
}

//マウスクリックで描画開始・停止
function action(e:MouseEvent):void {
if(flag){
flag = false;
init();
addEventListener(Event.ENTER_FRAME, makePeterDeJong);
} else {
flag = true;
removeEventListener(Event.ENTER_FRAME, makePeterDeJong);
}
}

//描画
action(null);
flag = false;

stage.addEventListener(MouseEvent.CLICK, action);


前のバージョンではプロットの際にいちいちlineTo()していたのでオブジェクトがどんどん増加していた。
そのため処理が遅くなって負荷も向上したため数万プロットで処理を停止するようにしていたが、今回はBitmapData上に描いているのでいつまで実行させてもパフォーマンス落ちないはず。

個人的にはステージサイズを大きくしてプロットしたあと画面をキャプチャし、そこからPhotoshopブラシを作るとかして遊んでます。

TwitterLog++

以前「Hello World」的な物を試してみてからこっち、全然ブックマークレットというモノを作った事がなかったので、休みに乗じてなんか作ってみっか、と自分用のブックマークレットをいくつか作成。
あんまり世間的に需要のありそうなモノはないのだけれども、一個さらしておきます。

Twitterではhomeのログをリンクからさかのぼれるのは10ページまでなのだが、実際にはURLのケツにくっついている数字を11、12、と変えていくとそれ以降のページも見ることができる。
いちいちURL欄の末尾の数字を選択して、書き換えてリターン、というのも煩わしいので、それをブックマークから行えるようにした。

TwitterLog++

上のテキストのリンクを右クリックでお気に入りに登録しておき、Twitterで自分のHomeにログイン。
お気に入りからこれを選択すると11ページ目のログに行く。以降、お気に入りからこれを選択するたびに12、13、とログをたどって表示します。

一応MacのFireFox、IE、WinのIE6で試した限りでは動くっぽいけどSafariはダメだった。

追記(2008.7.31)
けっこう前からですが、Twitterの仕様が変更されて、自分のログですら10ページ以上たどれなくなりました。最低ですね。
これではミニブログとしてもまるで機能しないのでいずれ改善されることを願いますが、とりあえず現状ではこのブックマークレットは使用できません。あーあ。

TIME AS GRADATION

071210timeasgradation.jpg
TIME AS GRADATION


時計作った。
時に応じて刻々と表情を変化させるグラデーションが、自分ではあまりやらないような色の組み合わせを見せてくれるのではないかという、PC頼みの偶発ビジュアルコンテンツ。

時、分、秒をそれぞれ角度に変換して色相環上を周回する。

この辺、うまい数式とかありそうなものだが、全然わからないのでif分岐の力業であります(泣)。

Copyright © 2004 elbro.net