Номер точки |
Смещения по координатам относительно предыдущей точки |
|||||
Для горизонтального сегмента |
Для вертикального сегмента |
|||||
По х |
По у |
Пох |
По у |
|||
3 |
а |
а |
-а |
а |
||
4 |
-а |
а |
-а |
-а |
||
5 |
-b |
0 |
0 |
-b |
||
Из табл. 8.4 видно, что при реализации программы достаточно иметь всего два массива смещений:
d1 = (0, а,b, а,-а,-а) и d2 = (0,-а, 0, а, а, 0)
Для вертикального сегмента они меняются местами и у одного из них меняются знаки.
Установим соотношения между точкой привязки цифры и координатами начальных точек каждого из семи сегментов. Пронумеруем сверху вниз числами 1, 2 и 3 горизонтальные сегменты, а числами 1, 2, 3 и 4 — вертикальные сегменты слева направо и сверху вниз. Несложно убедиться в том, что координаты их нулевых вершин вычисляются следующим образом.
Для горизонтальных сегментов:
xl = х х2 = х х3= х
yl = у у2 = у + с уЗ = у + 2*с
Для вертикальных сегментов:
xl=x х2=х+с х3=х х4 = х + с
yl = у у2 = у у3 = у + с у4=у + с
Совет 2 (Си)
Программа 8_15.с
/* Построение 7-сегментных цифр */
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
void cifra(int x,int y,int n) ;
void main() {
int gd=0,gm, k;
initgraph(&gd,&gm,"");
setcolor(4);
for(k=0;k<10;k++)
cifrat(k+1)*50,30,k) ; getch(}; return;