当我运行以下代码时,我遇到了一个错误: 错误:#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 是向量3
vector3 是在某处定义的数据类型
三向量函数
(vector3 x y z)
使用给定的组件创建一个新的 3 向量。
(vector3-x v)
(vector3-y v)
(vector3-z v)
返回向量 v 的对应分量。
material-func [函数] 一个参数的函数,位置向量3