Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Нарисовать "Розу ветров"

Автор: Demian 22.06.2008 16:00

Здравствуйте. Нужно нарисовать "Розу ветров". Прошу о помощи.
Прикрепленное изображение

Автор: renesko1 22.06.2008 16:51

Попробуй сначало нарисовать крест, а потом вычесли опорные точки для углов внутри .Они отходят от центра на 45 гр. те берем окружность и / на 4 части и отмеряя углы находим координаты точек.
Не забудь, что все в радианах.
Потом соедини линиями (line(x,y,x1,y1)) получ. точки и концы креста, а дальше осталось все закрасить.

Центр , если не знаешь, находиться след. образом :
x0 := getmaxx div 2 ;
y0 := getmaxy div 2 ;
Линия line(x,y,x1,y1) ;

Автор: volvo 22.06.2008 16:52

Здесь посмотри: http://volvo71.narod.ru/tasks.htm#wind_rose
(можно использовать как заготовку к твоему заданию, тем более что задания - то ты и не привел... Как строится "роза ветров", каковы исходные данные, что надо отобразить?)

Автор: renesko1 22.06.2008 16:55

У меня антинаучный способ smile.gif .

Автор: Demian 22.06.2008 17:00

Задание заключается в том, чтобы нарисовать именно то, что показано на изображении.

Автор: renesko1 22.06.2008 17:12

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

Автор: _LeeRoy_ 25.06.2008 1:07

Цитата(Demian @ 22.06.2008 13:00) *

Нужно нарисовать "Розу ветров".

Так пойдёт?
program roza_vetrov;
uses crt,graph;
Var Gd, Gm : Integer;
Begin clrscr;
Gd:=Detect;
InitGraph(Gd, Gm, ' ');
setcolor(4);
line(120,240,320,240);
line(320,240,280,200);
line(280,200,120,240);
setfillstyle(1,4); floodfill(250,220,4);
line(320,240,320,440);
line(320,440,280,280);
line(280,280,320,240);
setfillstyle(1,4); floodfill(300,300,4);
line(320,240,520,240);
line(520,240,360,280);
line(360,280,320,240);
setfillstyle(1,4); floodfill(350,250,4);
line(320,240,320, 40);
line(320, 40,360,200);
line(360,200,320,240);
setfillstyle(1,4); floodfill(330,150,4);
setcolor(3);
line(120,240,320,240);
line(320,240,280,280);
line(280,280,120,240);
setfillstyle(1,3); floodfill(250,260,3);
line(320,240,320,440);
line(320,440,360,280);
line(360,280,320,240);
setfillstyle(1,3); floodfill(330,270,3);
line(320,240,520,240);
line(520,240,360,200);
line(360,200,320,240);
setfillstyle(1,3); floodfill(360,220,3);
line(320,240,320, 40);
line(320, 40,280,200);
line(280,200,320,240);
setfillstyle(1,3); floodfill(300,200,3);

readkey;
closegraph;
end.

Автор: Demian 25.06.2008 1:47

Уже не требуется, но все равно большое спасибо.