あれ?
書いた日記が消えた様な気がする。
Outputz Eclipse Plugin
id:Yoshioriさんによる、Outputz Eclipse Pluginが公開されています。ありがとうございます。
Eclipse は使っている人が多そうですね。
Affine Transform
Real-Time Renderingの 4章 のTransform に突入。
ついに念願のアフィン変換が出てきた。以前から id:nik9 先生が何度も IRC で「アフィン変換」とつぶやくのを見てきた。その当時は全く意味が分からなかったが、こういう事だったのか。
せっかく自分が Mosh という数学の計算が得意(?)なインタプリタを持っているので、簡単なアフィン変換の行列計算を試していこうと思う。今日は早速、一番簡単な Translation を実装した。
Scheme 上で行列をどのように表現し、抽象化するのかあたりも追求してみよう。現時点では point, vector は Record で、Matrix は Vector で表現している。
そういえば Mosh でも早く絵を出せるようにしたいな。Postscript でならもう絵がでているが味気ない。いっそのこと Scheme のコードを JavaScript や Action Script に変換するコンパイラを書いてブラウザ上でぐりぐり動かすのはどうか。と思ったが、コード変換するコンパイラを書くのが楽しいだけだな。
psyntax で and を if に展開せずバックエンドに渡す方法
1. (and (core-macro . and)) を builder-script の psyntax-system-macros に追加。
(and (macro . and)) を削除。
2. builder.ss に追加
(define-syntax build-and (syntax-rules () ((_ ae exp*) `(and . ,exp*))))
export に build-and を追加。
3. expander.ss に追加
((and) and-transformer)
と
(define and-transformer (lambda (e r mr) (syntax-match e () ((_ e* ...) (build-and no-source (chi-expr* e* r mr))))))