HP LaserJet 4100 HP PCL/PJL reference (PCL 5 Printer Language) - Technical Ref - Page 156

Filling Polygons, Even/Odd Fill Method

Page 156 highlights

To create a series of subpolygons, for example, the letter D, move the pen to the starting location of the first subpolygon, then enter polygon mode. Define the outer shape of the letter D using the appropriate commands and coordinates, then close the subpolygon, staying in polygon mode. Define the inner shape of the D, then exit polygon mode. Now draw the subpolygons using either the Edge Polygon (EP) or Fill Polygon (FP) command. For more information on entering and exiting polygon mode, refer to the Polygon Mode (PM) command discussed in this chapter. In polygon mode, you can define points with the pen up or down. However, the Edge Polygon (EP) command only draws between points defined when the pen was down. In contrast, the Fill Polygon (FP) command fills between all points, regardless of whether they were defined when the pen was up or down. (Exception: the line connecting two subpolygons is never drawn, and is not a fill boundary.) Filling Polygons There are two methods which can be selected for filling polygons: the even/odd fill method and the non-zero winding fill method. Even/Odd Fill Method There is a simple way to determine which portions of a single polygon or series of subpolygons is filled when you send a Fill Polygon (FP) command using the default method 0, (fill using even/odd rule): Draw a straight line extending from any point within an enclosed area of the polygon to a point outside the polygon. FP fills the enclosed area in question only if the line you have drawn intersects the edges of the polygon an odd number of times. Figure 21-8 illustrates this 'odd-even' rule. 21-12 The Polygon Group EN

  • 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
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385
  • 386
  • 387
  • 388
  • 389
  • 390
  • 391
  • 392
  • 393
  • 394

21-12
The Polygon Group
EN
To create a series of subpolygons, for example, the letter D, move the
pen to the starting location of the first subpolygon, then enter polygon
mode. Define the outer shape of the letter D using the appropriate
commands and coordinates, then close the subpolygon, staying in
polygon mode. Define the inner shape of the D, then exit polygon
mode. Now draw the subpolygons using either the Edge Polygon
(EP) or Fill Polygon (FP) command. For more information on entering
and exiting polygon mode, refer to the Polygon Mode (PM) command
discussed in this chapter.
In polygon mode, you can define points with the pen up or down.
However, the Edge Polygon (EP) command only draws between
points defined when the pen was down. In contrast, the Fill Polygon
(FP) command fills between all points, regardless of whether they
were defined when the pen was up or down. (Exception: the line
connecting two subpolygons is never drawn, and is not a fill
boundary.)
Filling Polygons
There are two methods which can be selected for filling polygons: the
even/odd
fill method and the
non-zero winding
fill method.
Even/Odd Fill Method
There is a simple way to determine which portions of a single polygon
or series of subpolygons is filled when you send a Fill Polygon (FP)
command using the default method 0, (fill using even/odd rule):
Draw a straight line extending from any point within an enclosed area
of the polygon to a point outside the polygon. FP fills the enclosed
area in question only if the line you have drawn intersects the edges
of the polygon an odd number of times. Figure 21-8 illustrates this
‘odd-even’ rule.