Matlab椭圆小时计算
Matlabs ellipse hours calc
我制作了日晷模拟器,我画了椭圆,然后我必须在这个椭圆上画小时。我们的每一个都指定为:
x = a * sin(t);
y = b * cos(t);
其中:
a- length of longer semi-axis
b- length of smaller semi-axis
t- hour in degrees ( 1 hour == 15 degrees)
我在 Matlab 中写了这个函数:
function [hx,hy] = calcHourCoords(ra,rb)
%input:
%ra, rb length of semi-axis in ellipse
%output:
%hx, hy coords of hour's plot
hourAngle = 15*180/pi;
step = 0;
for i=1:1:24
hx(i)= ra * sin(step);
hy(i)= rb * cos(step);
step = step+hourAngle;
end
end
我终于得到了那张照片:
My ellipse and hours points
但应该是这样的:
Correct hour place's
椭圆是正确的(我画的是其他纬度的版本)。
也许有人可以帮助我?
对不起我的英语:)
编辑
我修复它 - 只需将度数转换为弧度即可。
EDIT2
我更改源代码仅供参考
function [hx,hy] = calcHourCoords(ra,rb)
%input:
%ra, rb length of semi-axis in ellipse
%output:
%hx, hy coords of hour's plot
hourAngle = 15*pi/180;
step = 0;
for i=1:1:24
hx(i)= ra * sin(step);
hy(i)= rb * cos(step);
step = step+hourAngle;
end
end
我制作了日晷模拟器,我画了椭圆,然后我必须在这个椭圆上画小时。我们的每一个都指定为:
x = a * sin(t);
y = b * cos(t);
其中:
a- length of longer semi-axis
b- length of smaller semi-axis
t- hour in degrees ( 1 hour == 15 degrees)
我在 Matlab 中写了这个函数:
function [hx,hy] = calcHourCoords(ra,rb)
%input:
%ra, rb length of semi-axis in ellipse
%output:
%hx, hy coords of hour's plot
hourAngle = 15*180/pi;
step = 0;
for i=1:1:24
hx(i)= ra * sin(step);
hy(i)= rb * cos(step);
step = step+hourAngle;
end
end
我终于得到了那张照片: My ellipse and hours points
但应该是这样的: Correct hour place's
椭圆是正确的(我画的是其他纬度的版本)。
也许有人可以帮助我?
对不起我的英语:)
编辑
我修复它 - 只需将度数转换为弧度即可。
EDIT2
我更改源代码仅供参考
function [hx,hy] = calcHourCoords(ra,rb)
%input:
%ra, rb length of semi-axis in ellipse
%output:
%hx, hy coords of hour's plot
hourAngle = 15*pi/180;
step = 0;
for i=1:1:24
hx(i)= ra * sin(step);
hy(i)= rb * cos(step);
step = step+hourAngle;
end
end