Графика. Нарисовать "Резиновый прямоугольник" - помогите доделать - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Ребятки, помогите пожайлуста:"Резиновый прямоугольник". Изменение размера прямоугольника при фиксированной координате верхнего левого угла (растягивание или сжатие за правую боковую или нижнюю стороны). Вращение прямоугольника за его произвольную вершину при фиксированной координате центра прямоугольника. Выбор точки(стороны,вершины) осуществляется графическим курсором и нажатием клавиши "Enter". Буду премного благодарна! Там на фотках почти вся программа написана, ее нужно только немного дополнить

Решение задачи: «Графика. Нарисовать "Резиновый прямоугольник" - помогите доделать»

textual
Листинг программы
Procedure Kursor(x,y,n:word);
Begin 
        setcolor(n);
        line(x-5,y,x+5,y);
        line(x,y+5,x,y-5);
end;
{----------------}
Procedure dvizhenie;
Var gd,gm,x1,y1,x2,y2:integer;
Begin
     gd:=Detect;
      ent:=0;
      initgraph(gd,gm,'');
      cleardevice;
      x:=20;
      y:=300;
      repeat
          kursor(x,y,10);
          if keypressed then
          begin
              kursor(x,y,0);
               a:=readkey;
               if a=chr(0) then
                begin
                 a:=readkey;
                 case ord(a) of 
                72:begin y:=y-10;
                 end;
                 80:begin y:=y+10;
                  end;
                  75:begin x:=x-10;
                   end;
                   77: begin x:=x+10;
                    end;
        else
             write('Нажата не стрелка');
          end;
        end
      else 
          case ord(a) of 
           13:begin 
                if ent=0 then
                begin 
                     x1:=getx;
                     y1:=gety;
                     ent:=1;
                  end
             else
                 begin 
                     x2:=getx;
                      y2:=gety;
                     end;
                begin
                     rectangle(x1,y1,x2,y2);
                 end;
              end;
         27:d:=3;
    else 
         begin gotoxy(20,24);
                 writeln('Нажата не стрелка');
                 repeat
                 until keypressed;
               end;
             end;
           end;
   until (x>=630) or (y>=470) or (x<=10) or (y<=10) or (d=3);
  closegraph;
End.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы