直角坐标,柱坐标,球坐标变换
坐标系几何
直角坐标(Cartesian),柱坐标(Cylindrical),球坐标(Spherical)之间的变换的结果非常容易在网上找到,但是推到过程不是那么的完善, 在这里记录一下。它们三者都是欧氏几何右手坐标系。


我们利用三角几何可以很轻松的得到数值上的关系:
x=ρcos(ϕ)=rsinθcosϕx = \rho cos(\phi) = rsin\theta cos\phix=ρcos(ϕ)=rsinθcosϕ
y=sinϕ=rsinθsinϕy = sin\phi = rsin\theta sin\phiy=sinϕ=rsinθsinϕ
z=rcosθz=rcos\thetaz=rcosθ
ρ=x2+y2=rsinθ\rho = \sqrt[]{x^2+y^2} = rsin\thetaρ=x2+y2=rsinθ
ϕ=tan−1(y/x)\phi = tan^{-1}(y/x)ϕ=tan−1(y/x)
z=rcosθz = rcos\thetaz=rcosθ
r=x2+y2+z2=ρ2+z2r = \sqrt{x^2 + y^2 + z^2} = \sqrt{\rho ^2 + z^2}r=x2+y2+z2=ρ2+z2
θ=tan−1x2+y2z=tan−1(ρ/z)\theta = tan^{-1} \frac{ \sqrt[]{x^2+y^2}}{z} = tan^{-1}(\rho/z)θ=tan−1zx2+y2=tan−1(ρ/z)
ϕ=tan−1(y/x)\phi = tan^{-1}(y/x)ϕ=tan−1(y/x)
单位向量变换
涉及到向量之后,坐标系变换就变得有点复杂。我们有时候需要将写在三种不同的坐标系下的向量相互变换。本文的重点也是在讨论这些变换矩阵是怎么来的。我们把坐标系单位向量写成(ax,ay,az)(\mathbf{a_x, a_y, a_z})(ax,ay,az),(aρ,aϕ,az)(\mathbf{a_\rho, a_\phi, a_z})(aρ,aϕ,az),(ar,aθ,aϕ)(\mathbf{a_r, a_\theta, a_\phi})(ar,aθ,aϕ)
直角坐标与柱坐标

因为直角坐标与柱坐标之间共享z,所以我们不用考虑z的改变,我们画出上图。然后加点辅助线,如下图所示:

现在就可以很轻松的写出
aρ=axcosϕ+aysinϕ+az0\mathbf{a_\rho} = \mathbf{a_x}cos\phi + \mathbf{a_y}sin\phi + \mathbf{a_z}0aρ=axcosϕ+aysinϕ+az0
aϕ=ax(−sinϕ)+aycosϕ+az0\mathbf{a_\phi} = \mathbf{a_x}(-sin\phi) + \mathbf{a_y}cos\phi + \mathbf{a_z}0aϕ=ax(−sinϕ)+aycosϕ+az0
az=ax0+ay0+az1\mathbf{a_z} = \mathbf{a_x}0 + \mathbf{a_y}0 + \mathbf{a_z}1az=ax0+ay0+az1
我们改写成矩阵的格式那么就变成了

逆变换就是把矩阵转置一下

柱坐标与球坐标系
同理与上文,因为柱坐标与球坐标共享了ϕ\phiϕ,我们可以有下图:

我们可以得出:

直角坐标与球坐标
利用柱坐标系的变换我们可以轻松的利用矩阵乘法得到直角坐标系与球坐标系之间的变换

以上。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)