uses crt, graphabc;var d,m,x,y,n,k:integer; xx,yy,t,a:real;const xo=320; yo=200;begin...

0 голосов
145 просмотров

uses crt, graphabc;
var
d,m,x,y,n,k:integer;
xx,yy,t,a:real;
const
xo=320; yo=200;
begin
a:=0;
for n:=1 to 20 do
begin
t:=0;
for k:=1 to 6280 do
begin
xx:=150*cos(t);
yy:=80*sin(t);
x:=round(xo+(xx*cos(a)-yy*sin(a)));
y:=round(yo-(xx*sin(a)+yy*cos(a)));
PutPixel(x,y,white);
t:=t+0.001;
end;
a:=a+pi/20;
end;
end.

опишите программу и объясните что выполняет сos и sin в этой программе


Информатика (80 баллов) | 145 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Программа рисует узор (см. вложение), состоящий из 20 эллипсов, каждый из которых повёрнут на 9 градусов относительно предыдущего. Угол поворота задаётся переменной а, которая изменяется от 0 до 180 (так как 20*9=180). Cos(a) и Sin(a) задают положение эллипса.

Каждый эллипс рисуется с помощью 6280 точек (цикл по k) командой PutPixel? начиная с крайней левой точки эллипса. Cos(t) и Sin(t) задают отклонение каждой точки от "центра" эллипса.

 

PS Кстати, в программе есть ошибка - цвет надо задавать как "clWhite", a не "White"  - хотя задавать белый вобще нет смысла - его не будет видно :)

 


image
image
(52.6k баллов)