Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2009, 20:53   #1
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
Печаль помогите с графикой!!!! (Paskal)

задание такое: нарисовать как капля воды капает с крана.

Цикл с каплей я уже написала, но проблема с краном....нарисовала 2 прямоугольника, но не могу их плавно соединить и убрать лишнии линии, не получается нарисовать винтиль у крана...пробывала с помощью bar3d не выходит........плиз, выручайте!!!!

Код:
  uses Graph;
var
 gd,gm: Integer;
BEGIN
 gD:= Detect;
 InitGraph(gD, gM, 'C:\TP7\BGI');
rectangle(200,130,310,160);
rectangle(310,160,345,210);


rectangle(230,130,270,110);
bar3d(230,110,270,90,10,10);

Readln;
   CloseGraph;
 end.
aiktz вне форума Ответить с цитированием
Старый 03.05.2009, 21:31   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Плавно соединить можно с помощью сектора.
Код:
 uses Graph;
var
 gd,gm: integer;
BEGIN
 gD:= Detect;
 InitGraph(gD, gM, '');
rectangle(200,130,310,160);
rectangle(310,160,340,210);

sector(310,160,0,90,30,30);

rectangle(230,130,270,110);
//bar3d(230,110,270,90,10,true);

Readln;
CloseGraph;
end.
Почему бы не покрасить кран? Например, так:
Код:
 uses Graph;
var
 gd,gm: integer;
BEGIN
 gD:= Detect;
 InitGraph(gD, gM, '');

Setcolor(6);
rectangle(200,130,310,160);
rectangle(310,160,340,210);

sector(310,160,0,90,30,30);


Setfillstyle(1,6);
Floodfill(201,131,6);
Floodfill(311,161,6);
Floodfill(311,159,6);

rectangle(230,130,270,110);
//bar3d(230,110,270,90,10,true);

Readln;
CloseGraph;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 03.05.2009 в 21:36.
Sazary вне форума Ответить с цитированием
Старый 03.05.2009, 21:58   #3
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
По умолчанию

спасибо огромммммммммммммммноое за кран!!!!! красота!!!.....
теперь проблема с delay....пишет что не знает переменную....

посмотрите пожалуйста

Код:
   uses Graph;
var
 gd,gm,x,y: integer;
BEGIN
y:=210;
x:=345;
Repeat
if y>400 then y:=200 else  y:=y+1;
setcolor(blue);
circle(x,y,5);
setfillstyle(1,blue);
floodfill(x,y,blue);
delay(1000);
setcolor(black);
circle(x,y,5);
setfillstyle(1,black);
floodfill(x,y,black);

 gD:= Detect;
 InitGraph(gD, gM, 'C:\tp7\bgi');

Setcolor(6);
rectangle(200,130,310,160);
rectangle(310,160,340,210);

sector(310,160,0,90,30,30);


Setfillstyle(1,6);
Floodfill(201,131,6);
Floodfill(311,161,6);
Floodfill(311,159,6);

rectangle(230,130,270,110);
bar3d(230,110,270,90,10,true);

Readln;
CloseGraph;
end.
aiktz вне форума Ответить с цитированием
Старый 03.05.2009, 21:59   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
теперь проблема с delay....пишет что не знает переменную....
Подключите CRT.

И где у вас repeat закрывается?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.05.2009, 22:06   #5
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
По умолчанию

а..поняла...спасибо вам!
aiktz вне форума Ответить с цитированием
Старый 03.05.2009, 23:31   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Кстати, решение выше перепутано и не доделано..
Вроде так надо?:
Код:
begin
  y := 210;
  x := 345;

  gD := Detect;
  InitGraph(gD, gM, ''C:\tp7\bgi');

  Setcolor(6);
  rectangle(200, 130, 310, 160);
  rectangle(310, 160, 340, 210);

  sector(310, 160, 0, 90, 30, 30);


  Setfillstyle(1, 6);
  Floodfill(201, 131, 6);
  Floodfill(311, 161, 6);
  Floodfill(311, 159, 6);

  rectangle(230, 130, 270, 110);
  bar3d(230, 110, 270, 90, 10, true);

  y := 220;
  x := 330;
  repeat
    y := y + 1;
    if y > 400 then y := 220;
    setcolor(blue);
    circle(x, y, 5);
    setfillstyle(1, blue);
    floodfill(x, y, blue);
    delay(4000);
    setcolor(black);
    circle(x, y, 5);
    setfillstyle(1, black);
    floodfill(x, y, black);
  until KeyPressed;

  Readln;
  CloseGraph;
end.
p.s. Delay на современных компьютерах работает абсолютно не адекватно.. поэтому константу подберёте конкретно под свой компьютер... (или поищите, на форуме были альтернативные решения)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.05.2009, 17:38   #7
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
По умолчанию

всем огромное спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!
aiktz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с графикой glasian Помощь студентам 8 26.06.2008 00:15
ПОМОГИТЕ с графикой в ПАСКАЛЕ!! Marat.kmr Фриланс 4 05.06.2008 22:22
Помогите с графикой tagjik Помощь студентам 4 03.06.2008 08:05