tonechka914
Новичок
|
Ребятки, помогите пожайлуста:"Резиновый прямоугольник". Изменение размера прямоугольника при фиксированной координате верхнего левого угла (растягивание или сжатие за правую боковую или нижнюю стороны). Вращение прямоугольника за его произвольную вершину при фиксированной координате центра прямоугольника. Выбор точки(стороны,вершины) осуществляется графическим курсором и нажатием клавиши "Enter". Буду премного благодарна! Код: 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.
|