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