Изобразить действующий конвейер транспортирующий какие – либо однотипные предметы.- QBasic(Бейсик)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
DEFINT A-Z
  ' Координаты
DATA 0, 0, 40, -15, 40, 15, 80, 0
DATA 0, 40, 40, 55, 80, 40
  
  ' Полигоны
DATA 0, 1, 3, 2, 3
DATA 0, 2, 5, 4, 1
DATA 2, 3, 6, 5, 2
  
DIM Mas%(500), Lns(2, 3), Cv(2)
  
   ' Загрузка объекта
  FOR i = 0 TO 6
     READ X(i), Y(i)
  NEXT
  FOR i = 0 TO 2
     READ Lns(i, 0), Lns(i, 1), Lns(i, 2), Lns(i, 3), Cv(i)
  NEXT
  
' Инициализация
  
  SCREEN 13
  
  OUT &H3C8, 1: OUT &H3C9, 24: OUT &H3C9, 24: OUT &H3C9, 24
  OUT &H3C8, 2: OUT &H3C9, 32: OUT &H3C9, 32: OUT &H3C9, 32
  OUT &H3C8, 3: OUT &H3C9, 40: OUT &H3C9, 40: OUT &H3C9, 40
' Цикл работы программы
NowTm! = TIMER
DO: Kb$ = INKEY$
  IF TIMER > NowTm! + 5 THEN Vnesti = 1: NowTm! = TIMER
  LINE (0, 0)-(0, 80), 15
  FOR Gx = 318 TO 0 STEP -1
     GET (Gx, Gx / 2.7)-(Gx, Gx / 2.7 + 80), Mas%
     PUT (Gx + 1, (Gx + 1) / 2.7), Mas%, PSET
  NEXT Gx
  
IF Vnesti = 1 THEN
  FOR Pn = 0 TO 2
   '  Отрисовка объекта
    CntX = 0: CntY = 0
    FOR i = 0 TO 3
      x1 = X(Lns(Pn, i)) + 1
      y1 = Y(Lns(Pn, i)) + 30
      x2 = X(Lns(Pn, (i + 1) AND 3)) + 1
      y2 = Y(Lns(Pn, (i + 1) AND 3)) + 30
        LINE (x1, y1)-(x2, y2), Cv(Pn)
      CntX = CntX + x1: CntY = CntY + y1
    NEXT
      PAINT (CntX \ 4, CntY \ 4), Cv(Pn), Cv(Pn)
  NEXT Pn
  Vnesti = 0
END IF
  
LOOP UNTIL Kb$ = CHR$(27)

Тестирование выполнено в программе QB64 ( Скачать )

Leave a Comment