Помощь - Поиск - Пользователи - Календарь
Полная версия: Простая задача
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Almaz
Вообщем задача состоит в следующем по условию дано:
uses graph;
var
grDriver:integer;
grMode:integer;
ErrCode:integer;
res:integer;
begin
grDriver:=detect;
Initgraph(grDriver, grMode,'С:tp\bgi');
ErrCode:=Graphresult;
if ErrCode=grOk then
begin
{основные действия}
end;
CloseGraph;
end.

Необходимо нарисовать пятиконечную звезду-такая как была у красной армии-что-тотипо такого smile.gif
там заданы грудусы-можно делать и не по градусам а по координатам.Буду очень признателе если поможете-так как я в паскале не оч и с графикой никогда в нем на работал(((Зареннее благодарюНажмите для просмотра прикрепленного файла
Archon
Главное - расчитать точки.
program SovietStar;

uses
crt, graph;

procedure DrawStar(x, y, InnerRadius, OuterRadius: Integer);
var
Points: array[0..9] of PointType;
i: Integer;
begin
{ Вычисление координат внешних вершин звезды: }
for i := 0 to 4 do begin
Points[i * 2].x := Round(Sin(Pi * 0.4*i) * InnerRadius) + x;
Points[i * 2].y := Round(Cos(Pi * 0.4*i) * InnerRadius) + y;
end;
{ Вычисление координат внутренних вершин звезды: }
for i := 0 to 4 do begin
Points[i * 2 + 1].x := Round(Sin(Pi * (0.4*i + 0.2)) * OuterRadius) + x;
Points[i * 2 + 1].y := Round(Cos(Pi * (0.4*i + 0.2)) * OuterRadius) + y;
end;
{ Рисуем звезду: }
SetColor(Red);
for i := 0 to 9 do
Line(Points[i].x, Points[i].y, Points[(i+1) mod 10].x, Points[(i+1) mod 10].y);
{ Навороты: }
for i := 0 to 9 do
Line(x, y, Points[i].x, Points[i].y);
SetFillStyle(SolidFill, Red);
for i := 0 to 4 do begin
FloodFill(Round(Sin(Pi * (0.4*i + 0.1)) * InnerRadius / 2) + x,
Round(Cos(Pi * (0.4*i + 0.1)) * InnerRadius / 2) + y, Red);
end;
SetFillStyle(SolidFill, LightRed);
for i := 0 to 4 do begin
FloodFill(Round(Sin(Pi * (0.4*i + 0.3)) * InnerRadius / 2) + x,
Round(Cos(Pi * (0.4*i + 0.3)) * InnerRadius / 2) + y, Red);
end;
end;

var
gd, gm: Integer;
begin
gd := Detect;
InitGraph(gd, gm, '');

DrawStar(GetMaxX div 2, GetMaxY div 2, GetMaxY div 5, GetMaxY div 2 - 20);

ReadKey;
CloseGraph;
end.
Навороты можно убрать.
Almaz
ОГромное спасибо!!!!!!Ты даже не представляешь как выручил!!!дай бог тебе здоровья)) good.gif good.gif good.gif осталось только навороты убрать))
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.