Epson FX-185 User Manual - Page 200

Reflections, IF Z=2 THEN B=1: E=N-6: S=1

Page 200 highlights

Reflections Once the desired image is stored in the array you can rotate and reflect it in several different directions. It's all done with mirrors; at least, it looks like mirror reflections when you are done. You create the mirror effect by reading the array in different directions. Currently your program reads the array from left to right, seven rows at a time, but it is just as easy to read it in the reverse order. Add this line: 140 FOR C=N TO 1 STEP -1: GOSUB 180: NEXT C and double the graphics width setting in line 130: 130 LPRINT- CHR$(27)"*"CHR$(5)CHR$(2*N)CHR$(0); Now RUN it. The left half of the figure mirrors the right half. With a few more changes, the program can read the array upside down and double the output again. Add these two lines: 80 B=N: E=7: S=-1 90 FOR Z=1 TO 2 and change these three: 60 PRINT "T MINUS";N-R: NEXT R 100 IF Z=2 THEN B=1: E=N-6: S=1 160 LPRINT: NEXT P: NEXT Z Now lines 80, 90, and 100 change the order in which the array is read. First (Z = 1) it's read upside down, then (Z=2) right side up, as before. This is the full listing: 10 DEFINT A: N=21: DIM A(N,N) 20 FOR R=1 TO N: FOR C=1 TO N 30 D=SQR(R^2+C^2) 40 IF INT(D+.5)=20 THEN A(R,C)=1 50 NEXT C 60 PRINT "T MINUS";N-R: NEXT R 70 LPRINT CHR$(27)"1"CHR$(7); 80 B=N: E=7: S=-1 90 FOR Z=1 TO 2 183

  • 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
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268

Reflections
Once the desired image is stored in the array you can rotate and
reflect it in several different directions. It’s all done with mirrors; at
least, it looks like mirror reflections when you are done. You create the
mirror effect by reading the array in different directions.
Currently your program reads the array from left to right, seven
rows at a time, but it is just as easy to read it in the reverse order. Add
this line:
140 FOR C=N TO 1 STEP -1: GOSUB 180: NEXT C
and double the graphics width setting in line
130:
130 LPRINT- CHR$(27)"*"CHR$(5)CHR$(2*N)CHR$(0);
Now RUN it.
The left half of the figure mirrors the right half. With a few more
changes, the program can read the array upside down and double the
output again. Add these two lines:
80
B=N: E=7: S=-1
90
FOR Z=1 TO 2
and change these three:
60 PRINT "T MINUS";N-R: NEXT R
100 IF Z=2 THEN B=1: E=N-6: S=1
160 LPRINT: NEXT P: NEXT Z
Now lines 80, 90, and
100
change the order in which the array is read.
First (Z =
1)
it’s read upside down, then (Z=2) right side up, as before.
This is the full listing:
10 DEFINT A: N=21: DIM A(N,N)
20 FOR R=1 TO N: FOR C=1 TO N
30
D=SQR(R^2+C^2)
40 IF INT(D+.5)=20 THEN A(R,C)=1
50
NEXT C
60 PRINT "T MINUS";N-R: NEXT R
70 LPRINT CHR$(27)"1"CHR$(7);
80 B=N: E=7: S=-1
90 FOR Z=1 TO 2
183