次のコードを実行すると、エラーが発生しました: エラー: #cartesian (x) への引数の数が正しくありません>
;;;; 関数定義
(define (eps-func p)
(let* ((p (lattice->cartesian))
(x (vector3-x p))
(y (vector3-y p))
(z (vector3-z p)))
(if (> sin(* 2 pi x y z) 0)
(make dielectric
(epsilon 12))
(make dielectric
(epsilon 1)))))
;;;; 関数呼び出し
(set! default-material (make material-function (material-func eps-func)))
どこが間違っているのかわかりません。上記のコードは、制御ファイルの一部にすぎません。
いくつかの背景情報は次のとおりです。
(lattice->cartesian x)
ここで、x は vector3 です
vector3 はどこかで定義されたデータ型です
3 ベクトル関数
(vector3 x y z)
指定されたコンポーネントで新しい 3-ベクトルを作成します。
(vector3-x v)
(vector3-y v)
(vector3-z v)
ベクトル v の対応するコンポーネントを返します。
material-func [関数] 1 つの引数、位置 vector3 の関数