Нарисовать шляпку подсолнуха с логарифмическими спиралями - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Программа должна рисовать шляпку подсолнуха с логарифмическими спиралями. Этот код работает, но нужно чтобы получалось что-то типа того что на картинке. Помогите, пожалуйста, кто сможет.

Решение задачи: «Нарисовать шляпку подсолнуха с логарифмическими спиралями»

textual
Листинг программы
uses graph;
var x0,y0,x,y,i:integer;
    a,b,t,f:real;
begin
initgraph(x,y,'');
x0:=getmaxX div 2;
y0:=getmaxY div 2;
setbkcolor(15);
a:=1;
b:=0.5;
f:=0;
for i:=1 to 21 do
 begin
  t:=0;
  repeat
   t:=t+0.01;
   x:=round(a*exp(b*(t))*cos(t+f));
   y:=round(a*exp(b*(t))*sin(t+f));
   putpixel(x0+x,y0-y,8);
  until t>3.2*pi;
  f:=f+2*pi/21;
 end;
for i:=1 to 34 do
 begin
  t:=0;
  repeat
   t:=t+0.01;
   x:=round(a*exp(b*(t))*sin(t+f));
   y:=round(a*exp(b*(t))*cos(t+f));
   putpixel(x0+x,y0-y,8);
  until t>3.2*pi;
  f:=f+2*pi/34;
 end;
setcolor(2);
circle(x0,y0,155);
readln
end.

Объяснение кода листинга программы

  1. Подключается библиотека graph.
  2. Объявляются переменные x, y, i, a, b, t, f: integer; a, b, t, f: real.
  3. Вызывается функция initgraph(x, y, ''), которая устанавливает графический контекст.
  4. Вычисляются координаты центра шляпки подсолнуха x0, y0, разделив максимальные координаты по горизонтали и вертикали на 2.
  5. Устанавливается цвет фона с помощью функции setbkcolor(15).
  6. Инициализируются переменные a, b, t, f.
  7. Задается начальное значение для переменной t в 0.
  8. Задается начальное значение для переменной f в 0.
  9. Запускается цикл for, который будет выполняться 21 раз.
  10. В каждой итерации цикла вычисляются значения x и y по формуле x = a exp(b (t)) cos(t + f) и y = a exp(b (t)) sin(t + f).
  11. Выводится пиксель на экран с помощью функции putpixel(x0 + x, y0 - y, 8), где x и y — вычисленные значения x и y.
  12. Значение переменной t увеличивается на 0.01.
  13. Значение переменной f увеличивается на 2 * pi / 21.
  14. После завершения каждой итерации цикла выводится сообщение readln.
  15. Заканчивается функция.
  16. Вызывается функция circle(x0, y0, 155), которая рисует окружность с центром в точке (x0, y0) радиусом 155.
  17. Завершается программа.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.333 из 5
Похожие ответы