Практика программирования (Бейсик, Си, Паскаль)


         

с цифровым индикатором цифры формируются


Программа 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 (общий)

Выберем в качестве точки привязки (х,у) вершину семисегментной комбинации, расположенную в левом верхнем углу. 0чевидно, что для плотного примыкания смежных горизонтальных и вертикальных сегментов их срезы должны быть направлены под углами 45 и 135 градусов.




Рис. 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

<

Содержание  Назад  Вперед