Четверг, 28.03.2024, 16:15
Блог учителя информатики и математики
О блогеМой профильРегистрацияВыходВход
Вы вошли как Гость · Группа "Гости" Приветствую Вас, Гость · RSS
Меню блога
Погода в нашем районе.

НАГРАДА

Как Вы считаете, должны ли дети ходить в школу в школьной форме?
Всего ответов: 2806
 
 Блог учителя
Главная » Статьи » Информатика » В помощь ученику

Изменения графической информации (15 урок).

Задача: Изменить размер геометрической фигуры.

Описание переменных:

 

x1, y1 – координаты верхнего левого угла прямоугольника;

x2, y2 – координаты нижнего правого угла прямоугольника;

a, b – коэффициенты масштабирования.

Алгоритм решения задачи:

Будем объект можно масштабировать - увеличивать или уменьшать по осям координат. Масштабирование может производиться относительно разных точек пространства. Например, относительно начала координат или относительно любой координатной точки.

  Если коэффициент масштабирования больше единицы, то объект увеличивается. Если меньше 1, то объект будет уменьшен.

 

Новые координаты х и у определяются соотношением

х := kx * x;

у := ky * y,

 kx и ky – коэффициенты масштабирования.

Программа на языке Паскаль АВС:

 

uses crt,graphABC;

var

    g,h,i:integer;

    x1,y1,x2,y2:integer;

    a,b:real;

begin

    x1:= 100;

    y1:= 100;

    x2:= 250;

    y2:= 150;

    rectangle(x1,y1,x2,y2);

    a:= 1.01;

    b:= 0.99;

    for i:= 1 to 10 do begin

        delay(1000);

        rectangle(x1,y1,x2,y2);

        x2:= round(x2*a);

        y2:= round(y2*a);

        rectangle(x1,y1,x2,y2);

    end;

    for i:= 1 to 40 do begin

        delay(1000);

        rectangle(x1,y1,x2,y2);

        x2:= round(x2*b);

        y2:= round(y2*b);

        rectangle(x1,y1,x2,y2);

    end;

end.

Примечания:

 

Т.к. координаты верхнего левого угла не меняются, то прямоугольник увеличивается относительно именно этой точки.

Изменения графической информации основаны на трёх преобразованиях: перенос, поворот и масштабирование. Эти  преобразования позволяют создавать  динамические геометрические изображения. При этом при построении графического изображения на экране монитора необходимо помнить, что система координат для графического режима отличается от обычной декартовой системы координат: ось 0Y направлена вниз, ось 0X - вправо, так что начало координат находится в левом верхнем углу экрана.

ДЗ Составьте движения языков пламени




Категория: В помощь ученику | Добавил: Harchev (02.12.2013)
Просмотров: 2996 | Комментарии: 7 | Рейтинг: 3.9/43
Всего комментариев: 7
1 Дмитрий.C.  
Звёзды.
uses GraphABC;
var x, y, a:integer;
begin
SetWindowHeight(754);
SetWindowWidth(1000);
ClearWindow (clBlack);
for a:=1 to 5000 do
begin
x:=random(1233);
y:=random(1241);
SetPixel(x,y,clYellow);
end;
end.

2 Кристина  
Program starsky;
uses graphABC;
var x,y,k:integer;
begin
ClearWindow (clPurple);
for k:=1 to 5000 do
begin
x:=random(1003);
y:=random(2345);
SetPixel(x,y,clYellow);
end;
end.

3 Дима Г  
uses GraphABC;
var n, t, a:integer;
begin
SetWindowHeight(700);
SetWindowWidth(1000);
ClearWindow (clBlack);
for a:=1 to 5000 do
begin
n:=random(7777);
t:=random(4321);
SetPixel(n,t,clWhite);
end;
end.

4 Аннф  
uses GraphABC;
var x, y, a:integer;
begin
SetWindowHeight(800);
SetWindowWidth(5000);
ClearWindow (clBlack);
for a:=1 to 5000 do
begin
x:=random(876);
y:=random(480);
SetPixel(x,y,clWhite);
end;
end.

5 Анастасия Степаненко  
uses GraphABC;
var x, i, n:integer;
begin
SetWindowHeight(600);
SetWindowWidth(5000);
ClearWindow (clBlack);
for n:=1 to 7000000 do
begin
x:=random(1777);
i:=random(6890);
SetPixel(x,i,clWhite);
end;
end.

6 Анастасия Степаненко  
прямоугольник движущийся
uses crt,graphABC;
var
g,h,i:integer;
x1,y1,x2,y2:integer;
a,b:real;
begin
textbackground (7);
setbrushcolor(clMaroon);
clrscr;
x1:= 300;
y1:= 300;
x2:= 450;
y2:= 250;
rectangle(x1,y1,x2,y2);
a:= 1.01;
b:= 0.99;
for i:= 1 to 10 do begin
delay(50);
rectangle(x1,y1,x2,y2);
x2:= round(x2*a);
y2:= round(y2*a);
rectangle(x1,y1,x2,y2);
end;
for i:= 1 to 40 do begin
delay(50);
rectangle(x1,y1,x2,y2);
x2:= round(x2*b);
y2:= round(y2*b);
rectangle(x1,y1,x2,y2);
end;
end.

7 Катерина  
Круг возрастающий
uses GraphABC;
Var
r: Integer;
begin
SetWindowSize(768,512);
lockdrawing;
Repeat
clearwindow;
setbrushcolor(clFuchsia);
FloodFill (300,170,clSilver);
Circle(384,256,r);
Inc(r);
Sleep(10);
redraw
until r>256
end.

Имя *:
Email *:
Код *:
Copyright MyCorp © 2024
Блог учителя Учительский портал