首页 > 编程知识 正文

matlab坐标轴旋转一定角度,matlab地理坐标转换为直角坐标

时间:2023-05-06 09:28:05 阅读:224271 作者:2496

使用Matlab画图时,有时三维的球坐标图更直观,需要把直角坐标转换球坐标。
代码如下:

function rectangular2spherical(theta, phi, z)%因为画图时使用surf来画图,所以要保证theta,phi,z的矩阵大小相同%相当于三维空间中,一个点的三个坐标。R = abs(z);%z = z - max(z); %如果z小于零,可以只取较大的数%R=z(z + 20 > 0); Spherical_x = R * sin(theta) * cos(phi);Spherical_y = R * sin(theta) * sin(phi);Spherical_z = R * cos(theta);end

看起来很简单的,下面写个小程序调用一下。

clearclose allclc%画一个平面,然后变换到球坐标系是一个球。theta = -90 : 1 : 90;phi = 0 : 1 : 360;z = ones(length(theta), length(phi));[theta_xx, phi_yy] = meshgrid(phi, theta);figure(1)surf(theta_xx, phi_yy, z)title('直角坐标系')shading flat %去掉网格的边沿颜色[theta_xx, phi_yy, z] = rectangular2spherical(theta_xx, phi_yy, z); %调用上面函数figure(2)surf(theta_xx, phi_yy, z)title('球坐标系')shading flataxis equal %坐标系对称

结果如下:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。