3DCG on JAKLD (Scheme Interpreter)
Scheme
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
doc
mod
src
LICENSE
README.md

README.md

3DCG on JAKLD (jakld-3dcg)

  • version 0.3.3

概要

  • Structure and Interpretation of Computer Programs[1] による Picture Language の応用
  • Scheme 処理系 JAKLD[2] 上での 3 次元モデルの構成, 描画, 保存

環境

  • JAKLD
    • vertexes->painter などに依存

使用法

  • 必要なファイルをロード
    • (start-picture)
    • (load "load.scm")
  • 視点や証明を定義して大域変数に設定
    • (define camera ...)
    • (set! *camera* camera)
    • (define lights ...)
    • (set! *lights* lights)
    • (set! *painter-filled?* #t) ; ソリッド
    • (set! *painter-filled?* #f) ; ワイヤフレーム
  • モデルの表面属性を定義
    • (define attribute ...)
  • モデルを定義
    • (define model ...)
  • (2D|3D) フレームを定義
    • (define frame ...)
  • 描画
    • (model frame) ; フレーム指定あり
    • (show model) ; フレーム指定なし(描画可能範囲全体を使用)
    • (redraw) ; 再描画 (高速)
  • 保存
    • (export "model.scm") ; 直前のモデルを S 式として保存
    • (export "model.scad" 'scad) ; 同, SCAD スクリプト[3]として保存
  • 読込み
    • (import "model.scm") ; 読込は S 式のみで可

サンプル

  • mod/*.scm (load.scm でロード済み)
    • (show cube-001)
    • (show sphere-001)
    • (show cylinder-001)
    • ...

備考

  • 保存形式は S 式または SCAD スクリプト
  • 立体の表面のポリゴン分割は SCAD と互換性なし

TODO

  • マニュアル
  • 未実装: intersection, defference, ...
  • Broccolo Romanesco

リンク