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

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

Образовательный студенческий форум _ Информатика / Программирование _ Графические примитивы

Автор: InFuz 6.4.2010, 8:23

1 - самый крутой вопрос, что надо сделать что работала бибилиотека graph.
uses graph; {пишет "File not found (GRAPH.TPU)."} {хотя все на месте, в DOC лежит GRAPH.INT, в UNITS лежит GRAPH.TPU}

Автор: граф Монте-Кристо 6.4.2010, 13:33

http://forum.codenet.ru/showthread.php?threadid=30084

Автор: InFuz 14.4.2010, 16:31

Помогите разобраться с заливкой. blush.gif
Вот сделал изображения по своему варианту,(правда стрелки все не стал делать bleh.gif ) там еще требуется показать умения применять разные цвета и заливку. Цвета я сделал, а вот с заливкой чот не могу разобраться как она работает blink.gif (хотел просто круги залить светло серым цветом или один хотябы круг).

Код
program Image;
uses crt,graph;
  var yd,ym,x,y:integer; mk:real;
  procedure cir1(x,y:integer; mk:real);
    begin
      setcolor(11);
      circle(x,y,round(10*mk));
      settextstyle(1,0,1*round(mk));
      outtextxy(x-3,y-10,'1');
    end;
  procedure cir2(x,y:integer; mk:real);
  var x0,y0:integer;
    begin
      x0:=x+round((50*round(mk))/2);
      y0:=y-round((100*round(mk))/2);
      setcolor(10);
      line(x,y-round((20*round(mk))/2),x0-round((15*round(mk))/2),y0+round((15*round(mk))/2));
      line(x0-round((15*round(mk))/2),y0+round((15*round(mk))/2),
      (x0-round((15*round(mk))/2))-round((10*round(mk))/2),y0+round((15*round(mk))/2));
      line(x0-round((15*round(mk))/2),y0+round((15*round(mk))/2),
      x0-round((15*round(mk))/2),(y0+round((15*round(mk))/2))+round((12*round(mk))/2));
      setcolor(11);
      circle(x0,y0,round(10*mk));
      settextstyle(1,0,1*round(mk));
      outtextxy(x0-3,y0-10,'2');
    end;
  procedure cir3(x,y:integer; mk:real);
  var x0,y0:integer;
    begin
      x0:=x+round((200*round(mk))/2);
      y0:=y-round((100*round(mk))/2);
      circle(x0,y0,round(10*mk));
      settextstyle(1,0,1*round(mk));
      outtextxy(x0-3,y0-10,'3');
    end;
  procedure cir4(x,y:integer; mk:real);
  var x0,y0:integer;
    begin
      x0:=x+round((250*round(mk))/2);
      y0:=y;
      circle(x0,y0,round(10*mk));
      setcolor(10);
      line(x0-round((20*round(mk))/2),y,x+round((20*round(mk))/2),y);
      line(x+round((20*round(mk))/2),y,x+round((50*round(mk))/2),y-round((5*round(mk))/2));
      line(x+round((20*round(mk))/2),y,x+round((50*round(mk))/2),y+round((5*round(mk))/2));
      setcolor(11);
      settextstyle(1,0,1*round(mk));
      outtextxy(x0-3,y0-10,'4');
    end;
  procedure cir5(x,y:integer; mk:real);
  var x0,y0:integer;
    begin
      x0:=x+round((50*round(mk))/2);
      y0:=y+round((100*round(mk))/2);
      circle(x0,y0,round(10*mk));
      settextstyle(1,0,1*round(mk));
      outtextxy(x0-3,y0-10,'5');
    end;
  procedure cir6(x,y:integer; mk:real);
  var x0,y0:integer;
    begin
      x0:=x+round((200*round(mk))/2);
      y0:=y+round((100*round(mk))/2);
      circle(x0,y0,round(10*mk));
      settextstyle(1,0,1*round(mk));
      outtextxy(x0-3,y0-10,'6');
    end;
  procedure text(x,y:integer; mk:real);
  var x0,y0:integer;
    begin
      setcolor(12);
      x0:=x+round((225*round(mk))/2);
      y0:=y-round((75*round(mk))/2);
      settextstyle(1,0,2*round(mk));
      outtextxy(x0,y0,'Graph');
    end;

  Begin clrscr;
    writeln('Vvedite - x, y and Mk');
    readln(x);
    readln(y);
    readln(mk);
    InitGraph(yd,ym,'');
    cir1(x,y,mk);
    cir2(x,y,mk);
    cir3(x,y,mk);
    cir4(x,y,mk);
    cir5(x,y,mk);
    cir6(x,y,mk);
    text(x,y,mk);
    readkey;
    closegraph;
  End.

Автор: граф Монте-Кристо 14.4.2010, 17:21

Отвыкайте использовать в программе конкретные числа, старайтесь использовать переменные или константы.
Насчёт заливки - если правильно помню, сначала прописывается её тип и цвет функцией setfillstyle(<type>,<color>), а сама заливка осуществляется функцией floodfill(x,y,<color>), где первые два параметра - координаты точки, в которую будете "лить", а последний - номер цвета, который должен ограничивать заливку(если Вы хотите раскрасить круги, то этим цветом будет 11й).

Автор: InFuz 14.4.2010, 17:44

сенкс thumbsup.gif работает

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)