2015-04-26 4 views
0

Я делаю солнечный симулятор, и я рисую эллипс, а затем мне нужно нарисовать часы на этом эллипсе. Каждый наш задается: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

Эллипс правильный (я рисую свою версию для другой широты).

Возможно, кто-то может мне помочь?

Извините за мой английский :)

EDIT

Я отремонтировать его - просто преобразовать градусы в радианы.

EDIT2

меняю исходный код FYI

+0

Поскольку вы решили проблему, рассмотреть вопрос о создании свой собственный ответ и приняв его, или удалить свой вопрос все вместе. – rayryeng

ответ

0
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