2007年6月12日星期二

Asymptote学习系列(6)

数据类型(续):

triple
triple是由三个实数组成的数对(x,y,z)。如果你定义了'triple z', 则你可以用z.x,z.y,z.z来引用相应的分量,但不允许直接修改。

一些内置函数:

real length(triple v)
            返回 v 的长度 |v| 。出可以用 abs(triple)
real polar(triple v)
            返回 v 与 z 轴的弧度;
real azimuth(triple v)
            返回 v 与 x 轴的弧度;
real colatitude(triple v)
            返回 v 与 z 轴的夹角(度);
real latitude(triple v)
            返回 v 与 xy 平面的夹角(度);
real longitude(triple v, bool warn=true)
            返回 v 与 x 轴的角度(度);当warn=false且v.x=v.y=0 时会返回0,而不是产生错误;
triple unit(triple v)
            单位化向量 v ;
triple expi(real colatitude, real longitude)
            返回方向为 (colatitude,longitude) (弧度)的单位向量;
measured in radians;
triple dir(real colatitude, real longitude)
            返回方向为 (colatitude,longitude) (度)的单位向量;
real xpart(triple v)
            返回 v.x;
real ypart(triple v)
            返回 v.y;
real zpart(triple v)
            返回 v.z;
real dot(triple u, triple v)
            返回内积 u.x*v.x+u.y*v.y+u.z*v.z;
triple cross(triple u, triple v)
            返回外积 (u.y*v.z-u.z*v.y,u.z*v.x-u.x*v.z,u.x*v.y-v.x*u.y);
triple minbound(triple u, triple v)
            返回 (min(u.x,v.x),min(u.y,v.y),min(u.z,v.z));
triple maxbound(triple u, triple v)
            返回 (max(u.x,v.x),max( u.y,v.y),max(u.z,v.z)).

--
海阔天空,我所感兴趣的一切,从股票到C++,从笑话到Linux,从subversion到Latex
http://hai-kuo.blogspot.com/

没有评论: