Надо на нем написать программу и чтобы обязательно задавалось количество лучей! спасибо кто ответит! Очень нужно и срочно!
Паутина. Получить на экране рисунок паутины
с центром в произвольной (заданной) точке, с произ¬
вольным числом лучей. Паутина образована лучами
и многоугольниками.
Другие языки программирования и технологии
РЕБЯТ!!! Те кто понимает в PascalABC.Надо на нем написать программу и чтобы обязательно задавалось количество лучей!!! спа
program pautina;
uses
GraphABC;
var
L, n, i, j: integer;
kx, ky, x, y, dx, dy: Real;
ps1: array of Point;
ps2: array of Point;
ps3: array of Point;
ps4: array of Point;
begin
WriteLn('L='); {зададим 10 при вводе}
Readln(L);
WriteLn('x='); {зададим 200 при вводе}
Readln(x);
WriteLn('y='); {зададим 200 при вводе}
Readln(y);
ClearWindow;
SetLength(ps1, L); {массив точек}
SetLength(ps2, L); {массив точек}
SetLength(ps3, L); {массив точек}
SetLength(ps4, L); {массив точек}
{вычисляем точки и рисуем лучи}
for i := 0 to 3 do
begin
for j := 0 to L - 1 do
begin
dx := (100 - 25 * i) * cos(j * 2 * Pi / L);
dy := (100 - 25 * i) * sin(j * 2 * Pi / L);
case i of
0:
begin
ps1[j].X := Floor(x + dx);
ps1[j].Y := Floor(y + dy);
end;
1:
begin
ps2[j].X := Floor(x + dx);
ps2[j].Y := Floor(y + dy);
end;
2:
begin
ps3[j].X := Floor(x + dx);
ps3[j].Y := Floor(y + dy);
end;
3:
begin
ps4[j].X := Floor(x + dx);
ps4[j].Y := Floor(y + dy);
end;
end;
{рисуем луч если i = 0}
if i = 0 then Line(Floor(x), Floor(y), ps1[j].X, ps1[j].Y);
end;
end;
{рисуем многоугольники}
for i := 0 to 3 do
begin
case i of
0: DrawPolygon(ps1);
1: DrawPolygon(ps2);
2: DrawPolygon(ps3);
3: DrawPolygon(ps4);
end;
end;
end.
uses
GraphABC;
var
L, n, i, j: integer;
kx, ky, x, y, dx, dy: Real;
ps1: array of Point;
ps2: array of Point;
ps3: array of Point;
ps4: array of Point;
begin
WriteLn('L='); {зададим 10 при вводе}
Readln(L);
WriteLn('x='); {зададим 200 при вводе}
Readln(x);
WriteLn('y='); {зададим 200 при вводе}
Readln(y);
ClearWindow;
SetLength(ps1, L); {массив точек}
SetLength(ps2, L); {массив точек}
SetLength(ps3, L); {массив точек}
SetLength(ps4, L); {массив точек}
{вычисляем точки и рисуем лучи}
for i := 0 to 3 do
begin
for j := 0 to L - 1 do
begin
dx := (100 - 25 * i) * cos(j * 2 * Pi / L);
dy := (100 - 25 * i) * sin(j * 2 * Pi / L);
case i of
0:
begin
ps1[j].X := Floor(x + dx);
ps1[j].Y := Floor(y + dy);
end;
1:
begin
ps2[j].X := Floor(x + dx);
ps2[j].Y := Floor(y + dy);
end;
2:
begin
ps3[j].X := Floor(x + dx);
ps3[j].Y := Floor(y + dy);
end;
3:
begin
ps4[j].X := Floor(x + dx);
ps4[j].Y := Floor(y + dy);
end;
end;
{рисуем луч если i = 0}
if i = 0 then Line(Floor(x), Floor(y), ps1[j].X, ps1[j].Y);
end;
end;
{рисуем многоугольники}
for i := 0 to 3 do
begin
case i of
0: DrawPolygon(ps1);
1: DrawPolygon(ps2);
2: DrawPolygon(ps3);
3: DrawPolygon(ps4);
end;
end;
end.
Похожие вопросы
- Напишите программу, которая находит в массиве количество элементов, равных заданному значению X .
- Помогите написать программу на ассемблере, завтра экзамен а я в нём совсем не шарю.
- помогите, пожалуйста, написать программы в PascalABC
- Ребят, помогите написать программу для Паскаля!
- Помогите написать программу со switch в СИ
- Какую написать программу?
- pascalabc.net все функцеи Напишите пожалуйста все функции Пример sqrt(x )
- Помогите с информатикой!!! Кто понимает? Нужно преобразовать массив. (написать программу на паскале).
- Помогите написать программу на С. Тема Составление программ с использованием массивов
- Нужно написать программу на паскале