Программа 8_14.pas
program shach;
{ Построение шахматной доски } uses Graph;
const
x0=10;
y0=10;
w=50;
col:integer=8;
var
i,j,gd, gm,x,у:integer;
begin gd:=0;
initgraph(gd,gm,' ') ;
for i:=0 to 7 do begin
col:=15-col;
y:=y0+i*w;
for j:=0 to 7 do begin
x:=x0+j *w;
setfillstyle(1,col);
bar3d(x,y,x+w,y+w,0,true);
{ 0бводка и заливка клетки }
col:=15-col;
{ Цвет для смежной клетки }
end;
end;
readln;
closegraph;
end.
Задание 8.15. 0тображение семисегментныхцифр
В электронных часах с цифровым индикатором цифры формируются как комбинации из семи сегментов (рис 8.3). Составить функцию (процедуру) cifra, которая по заданным координатам (х,у) и числовому значению цифры k (о <= k <= 9) формирует на экране ее графическое изображение.
Совет 1 (общий)
Рис. 8.3. Горизонтальный и вертикальный сегменты цифр
Если пронумеровать точки контура одного сегмента от 0 до 6 по часовой стрелке от самой левой (для горизонтальных) или самой верхней (для вертикальных) и считать, что начальная точка имеет координаты (х0.у0), то координаты остальных точек можно рассчитать, используя относительные смещения, приведенные в табл. 8.4. Через а и ь здесь обозначены смещения по координатным осям для наклонных и горизонтальных (вертикальных) ребер контура. Задавая различные числовые значения этих параметров, можно строить сегменты нужного размера. Удобно выбирать b = 4*а, хотя не возбраняются и любые другие соотношения. В последующих расчетах нам понадобится и константа с = = 2*а. + b, представляющая максимальную длину (высоту) сегмента.
Таблица 8.4. Расчет координат точек с использованием
относительного смещения
Номер точки |
Смещения по координатам относительно предыдущей точки |
|||||
Для горизонтального сегмента |
Для вертикального сегмента |
|||||
По х |
По у |
Пох |
По у |
|||
0 | 0 | 0 | 0 | |||
а | -а | а | а | |||
0 1 2 |
b |
0 |
0 |
b |
||