Advertisement
dmkozyrev

heart.m

Nov 27th, 2015
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.70 KB | None | 0 0
  1. function h = heart(color, width, radius, style)
  2. % Данная функция рисует одно сердечко с центром в точке (0,0)
  3. % Сердечко задается параметрически следующими формулами:
  4. % y = calc_y(t, R); x = calc_x(t, R);
  5.  
  6. % Входные параметры:
  7. % color - цвет линии
  8. % width - ширина линии
  9. % radius - радиус сердечка
  10. % style - стиль линий
  11.  
  12. % Возвращает h - ссылку на нарисованное сердечко
  13.  
  14. % Нарисуем это сердечко на отрезке [a, b] с шагом dt:
  15.     a = 0; b = 2*pi; dt = ( b - a ) / 360; % Задаем начальные значения
  16.    
  17. % Создаем наше перо в изначальной точке a и устанавливаем атрибуты:    
  18.     x = calc_x(a, radius); % вычисляем x(a)
  19.     y = calc_y(a, radius); % вычисляем y(a)
  20.     p = Pero(x, y); % создаем перо
  21.     p.set('lineColor', color, 'lineWidth', width, 'lineStyle', style);
  22.    
  23. % Рисуем график параметрически заданной функции на отрезке [a, b]
  24.     for t = a+dt:dt:b
  25.         x = calc_x(t, radius); % вычисляем x(t)
  26.         y = calc_y(t, radius); % вычисляем y(t)
  27.         p.punct(x, y); % перемещаем перо в точку (x(t), y(t))
  28.     end
  29.    
  30. % Соединяем все точки , которые посетило наше перо
  31.     h = p.draw;
  32. end
  33.  
  34. function y = calc_y(t, R)
  35.     y = R*(13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t))/16;
  36. end
  37.  
  38. function x = calc_x(t, R)
  39.     x = R*sin(t)^3;
  40. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement