デカルト 3D 座標系のポイントを球状 3D システムに変換しようとしています。
これは私がこれまでに得たものです:
radialDistance3D (x,y,z) = sqrt (x*2 + y*y + z*z)
cartesian3DToPolar3D (x,y,z) = (r,alpha, beta)
where r = radialDistance3D (x,y,z)
alpha = acos(z/r)
beta = atan2(y,x)
Ghciはコードをロードしますが、実行しようとすると
cartesian3DToPolar3D (1.0,2.0,3.0)
私は得る:
<interactive>:1:0:
No instance for (RealFloat (t, t))
arising from a use of `cartesian3DToPolar3D'
at <interactive>:1:0-33
Possible fix: add an instance declaration for (RealFloat (t, t))
In the expression: cartesian3DToPolar3D (1.0, 2.0, 3.0)
In the definition of `it':
it = cartesian3DToPolar3D (1.0, 2.0, 3.0)
これは役に立ちません。何が起こっている?
変換式はhttp://en.wikipedia.org/wiki/Spherical_coordinate_system#Cartesian_coordinatesから