В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
kristimilafffka
kristimilafffka
08.01.2023 00:04 •  Информатика

Как создать рисунок в среде скрейч​

Показать ответ
Ответ:
роман507
роман507
19.07.2022 19:43

Везде имя массива - это a. Массив заполняется через цикл for.

а) Количество элементов: 15 (сколько раз цикл заполнения массива проработает; в нашем случае - 15)

random(201) - 100 можно записать следующим образом:

Случайное число в диапазоне от 0 до 200, от которого отнимается 100, что позволяет делать числа отрицательными.

б) Количество элементов: 10

Значения (число[индекс]): 1[1], 2[2], 3[3], 4[4], 5[5], 6[6], 7[7], 8[8], 9[9], 10[10]

в) Количество элементов: 5

Значения (число[индекс]): 3[1], 5[2], 7[3], 9[4], 11[5]

0,0(0 оценок)
Ответ:
Roth999
Roth999
20.11.2021 05:02

uses

 GraphABC;

const

 S = 14; // Кол-во щупалец

 N = 18;  // Кол-во звеньев в каждом из них

 W = 2; //Ширина щупалец

var

 i, j: Integer;

 x, y: Real;

 tx, ty: Real;

 k, d: Real;

 

 // Углы поворота звеньев относительно друг-друга

 a: array [1..N] of Real;

 

 // Длина одного звена

 len: Real;

begin

 Pen.Width := W;

 SetWindowSize(320, 320);

 SetWindowTitle('Щупальца');

 

 if Window.Width > Window.Height then

   len := Window.Height / 1.8 / N

 else

   len := Window.Width / 1.8 / N;

 k := random(360) * pi / 180;

 d := pi * 2 / S;

 

 var k1 := 1;

 

 // Главный цикл

 repeat

   

   if Window.Width > Window.Height then

     len := Window.Height / 1.8 / N

   else

     len := Window.Width / 1.8 / N;

   

   LockDrawing(); //Блокируем рисование(для оптимизации)

   ClearWindow(ClBlack); // Стираем всё

   

   // Расчёт коэфицента поворота

   if random(50) = 0 then

     k := random(360) * pi / 180;

   

   // Поворот всех щупалец

   a[1] := a[1] + sin(k) / 15;

   // Интерполяция углов между щупальцами

   for i := 2 to N do  

     a[i] := a[i] + (a[i - 1] - a[i]) * 0.1;

   for j := 0 to S - 1 do

   begin

     x := 0.5 * Window.Width;

     y := 0.5 * Window.Height;

     for i := 2 to N do  

     begin

       SetPenColor(Color.FromArgb(255, trunc(255 - 255 * i / N), 255));

       

       // Немного школьной тригонометрии :)            

       tx := x + cos(j * d + a[i]) * len;

       ty := y + sin(j * d + a[i]) * len;

       Line(trunc(x), trunc(y), trunc(tx), trunc(ty));

       x  := tx;

       y  := ty;

     end;

   end;

   Redraw(); //Перерисуем изображение

   k1 += 1;

   SetWindowTitle('Щупальца( Средн. FPS ' + Format('{0,5:f2}',k1/Milliseconds*1000)+')');

   

   sleep(5);

 until false;

 

end.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота