Изменить размер геометрической фигуры.
x1, y1 – координаты верхнего левого угла прямоугольника;
x2, y2 – координаты нижнего правого угла прямоугольника;
a, b – коэффициенты масштабирования.
Геометрический объект можно масштабировать, т.е. увеличивать или уменьшать по осям координат. Масштабирование может производиться относительно разных точек пространства. Например, относительно начала координат или относительно центра объекта.
При изменении размера фигуры используются коэффициенты масштабирования. Если коэффициент больше единицы, то объект увеличивается. Если коэффициент принадлежит диапазону от 0 до 1, то объект будет уменьшен.
Новые координаты X и Y определяются соотношением
X = kx * x;
Y = ky * y,
где kx и ky – коэффициенты.
uses graph,crt; var g,h,i:integer; x1,y1,x2,y2:integer; a,b:real; begin g := detect; initgraph(g,h,''); setcolor(10); x1:= 100; y1:= 100; x2:= 200; y2:= 150; rectangle(x1,y1,x2,y2); a:= 1.1; b:= 0.9; for i:= 1 to 5 do begin delay(1000); setcolor(0); rectangle(x1,y1,x2,y2); x2:= round(x2*a); y2:= round(y2*a); setcolor(10); rectangle(x1,y1,x2,y2); end; for i:= 1 to 5 do begin delay(1000); setcolor(0); rectangle(x1,y1,x2,y2); x2:= round(x2*b); y2:= round(y2*b); setcolor(10); rectangle(x1,y1,x2,y2); end; readln end.
Т.к. координаты верхнего левого угла не меняются, то прямоугольник увеличивается относительно именно этой точки.
Комментарии
FreePascal не компилируется
FreePascal не компилируется "UNIT" excepted but "USES" found