program lab_8;
uses graph;
var gd,gm,getmaxX,getmaxY,x1,x2,x3,x4,y1,y2,y3,y4,i,k:integer;
begin
gd:=DETECT;
initgraph(gd,gm,'');
setbkcolor (black);
setcolor(white);
x1:=1;
y1:=1;
x3:=16;
x4:=1;
k:=0;
for k:=1 to 3 do
begin
i:=0;
for i:= 1 to 2 do
begin
x2:=x1 + 24;
y2:=y1 + 200;
x4:=x3 + 16;
y4:=y3 + 133;
setcolor(0);
setfillstyle(1,0);
rectangle (x1,y1,x2,y2);
setcolor(15);
setfillstyle(1,15);
rectangle (x3,y3,x4,y4);
x1:=x2;
y1:=y2 - 200;
x3:=x4 + 8;
y3:=y4 - 133;
end;
i:=3;
rectangle (x1,y1,x2,y2);
x1:=x2;
y1:=y2 - 200;
x3:=x4 + 32;
y3:=y4 - 133;
for i:= 4 to 6 do
begin
x2:=x1 + 24;
y2:=y1 + 200;
x4:=x3 + 16;
y4:=y3 + 133;
rectangle (x1,y1,x2,y2);
rectangle (x3,y3,x4,y4);
x1:=x2;
y1:=y2 - 200;
x3:=x4 + 8;
y3:=y4 - 133;
end;
i:=7;
rectangle (x1,y1,x2,y2);
x1:=x2;
y1:=y2 - 200;
x3:=x4 + 32;
y3:=y3 - 133;
end;
readln;
closegraph;
end.
Задача на использование графического режима в Pascal
Построить на экране видеомонитора изображение 3-х октав клавиатуры рояля. Изображение поместить в центральной части в прямоугольнике размером 500х200 пикселей.
Я смог написать только вот:
Код:
Результат далеко не тот, который хотелось бы. Завтра - день сдачи задачи, программирование идет в довесок к информатике, и сам я в нем не особо силен. Надеюсь на помощь форумчан.
попробуйте высчитывать координаты прямоугольников в явном виде через переменные циклов, что-то типа
Код:
for i := ... to ... do
rectangle(X0 + i*BarWidth, Y0, X0 + (i+1)*BarWidth, Y1);
rectangle(X0 + i*BarWidth, Y0, X0 + (i+1)*BarWidth, Y1);
будет проще и надёжнее
Спасибо, приму к сведению и попытаюсь подобным образом.
Код:
x1:=getmaxX div 2;
y1:=getmaxY div 2;
y1:=getmaxY div 2;
Увы, картинка уходит за левую и верхнюю границы экрана, что немного удивительно. Может, я что-то делаю не так?
если я правильно понял что x1,y1 означет верхний левый угол
P.S. Левый вверхний угол - начало координат.
На прикрепленном изображении та ситуация, что получается в моем случае.
то что изображение уходит за край монитора -- симптом того что неверно рассчитываются смещения. чтобы разобраться в чём ошибка нужно видеть код