首先,matlab 本身提供了把直角坐标转化为极坐标的函数 cart2pol。调用方法为:
[TH,R] = cart2pol(X,Y) TH 是极坐标的角度坐标,R 是距离坐标。
[TH,R,Z] = cart2pol(X,Y,Z) 这个函数同时支持3维直角坐标到柱坐标的转换。
如果因为是作业或者练习,一定要自己写一个的话,请继续往下看。
考虑到这个程序的性质,编成一个函数比较适合。编写这个函数需要用到直角坐标与极坐标的数学关系。考虑到输入参数可能是一个向量或矩阵,关系式里面的运算符应该用加点运算符。
函数代码如下:
function [ TH,R ] = mycart2pol(X,Y)
%this function transforms corresponding elements of data
%stored in Cartesian coordinates X,Y to polar coordinates
%angle TH and radius R.
R=(X.^2+Y.^2).^0.5
TH=atan(Y./X)
end
测试结果如下:
在 平面内取一个定点O,叫极点,引一条射线Ox,叫做极轴,再选定一个长度单位和角度的正方向(通常取逆时针方向).对于平面内任何一点M,用ρ表示线段OM的长度,θ表示从Ox到OM的角度,ρ叫做点M的极径,θ叫做点M的极角,有序数对 (ρ,θ)就叫点M的极坐标,这样建立的坐标系叫做极坐标系.极坐标系中的两个坐标 r 和 θ 可以由下面的公式转换为 直角坐标系下的坐标值
x = r*cos(θ),y = r*sin(θ),
由上述二公式,可得到从直角坐标系中x 和 y 两坐标如何计算出极坐标下的坐标
r = sqrt(x^2 + y^2),θ= arctan y/x
在 x = 0的情况下:
若 y 为正数 θ = 90° (π/2 radians)若 y 为负,则 θ = 270° (3π/2 radians).
施工坐标系与测量坐标系之间的相互转换一、用Microsoft Excel 编辑转换
如图(1-1)所示:设 为测量坐标系, 为施工坐标,如果知道了施工坐标系的原点 的测量坐标为( , )、定向点I的测量坐标为(XI,YI),定向坐标方位角 (即纵轴的旋转角,因为 为正北方向,则 = +α)。则所求P点由施工坐标P( )换算成为测量坐标P( )的公式则为:
上面两式在Excel中编辑公式为:
而如果知道了施工坐标系(第二坐标系)的原点的测量坐标 为( 、 )、坐标方位角 (即纵轴的旋转角,因为 为正北方向,则 = +α)。则所求P点由测量坐标P( )转换算为施工坐标P( )其公式为:
上面两式在Excel中编辑公式为:
以上各式中施工坐标系原点 的测量坐标( , )与方位角α ,可在设计资料中查找或用图解法得出。
附: 如(图1-2)直线AB的坐标方位角
如(图1-2)直线AB与直线AC的夹角 β
二、用 CASIO fx-4500PA/4800P编程序坐标转换
A" ":B" ": C" ":D" ": H" ":F" ":
E = H – A:
J = F – B:
R = Abs tan-1 ( J / E ):
E >0 => Goto 1: ≠> Goto 4:
Lab 1: J > 0 => Goto 2: ≠> Goto 3:
Lab 2: W"W0" = R ◢ Goto 7:
Lab 3: W"W0" = 360 – R ◢ Goto 7:
Lab 4: J > 0=> Goto 5: ≠> Goto 6:
Lab 5: W"W0" = 180 – R ◢ Goto 7:
Lab 6: W"W0" = 180 + R ◢ Goto 7:
Lab 7: N = 0 : => Goto 8 : ≠> Goto 9:
Lab 8: { X Y }:
P "XP" = ( X - A ) * cos W + ( Y – B ) * sin W + C ◢
P "YP" = - ( X – A ) * sin W + ( Y – B ) * cos W + D◢ Goto 8:
Lab 9: { X Y }:
P "XP" = A + ( X – C ) * cos W – ( Y - D ) * sin W ◢
P "YP" = B + ( X – C ) * sin W – (Y –D ) * cos W ◢
Goto 9
说明:文件2为测量坐标系转换为施工坐标系。施工坐标系坐标原点的测量坐标(A" ":B" ":),施工坐标(C" ":B" ":)定向点的测量坐标(H" ":F" ":)带定点的测量坐标(X" ": Y" ":),所要求带定点的施工坐标(P"XP":P"YP":)。文件3为施工坐标系转换为测量坐标系。其他的程序赋予值是一样。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)