特殊代码 00B (11) 用于绘制起点和终点不必在八分圆边界上的圆弧。其定义使用五个定义字节:
11,start_offset,end_offset,high_radius,radius,(-)0SC
start_offset 和 end_offset 表示与圆弧起点和终点所在的八分圆边界的距离。high_radius 表示半径的高八位有效数字,当 radius 不大于 255 时其值为 0。将 high_radius 值与 256 相乘并加上 radius 值,可生成大于 255 的圆弧半径。radius 和最后的定义字节与八分圆弧的定义(代码 00A,如前所述)一样。
确定起始偏移的方法是先计算起始八分圆的边界(45 度的倍数)与圆弧起点之间所差的度数,然后用这个差值乘以 256 再除以 45。如果圆弧从八分圆边界开始,则其 start offset 为 0。
end offset 的计算方式是相似的,但必须用最后一个八分圆边界与圆弧终点之间所差的度数进行计算。如果圆弧在八分圆边界终止,则其 end offset 为 0。
例如,从 55 度到 95 度,半径为 3 个单位的特殊圆弧编码如下:
11,(56,28,0,3,012)
start_offset = 56 因为 ((55 - 45) * 256 / 45) = 56
end_offset = 28 因为 ((95 - 90) * 256 / 45) = 28
high_radius = 0 因为 (radius < 255)
radius = 3
starting octant = 1 因为圆弧起点在 45 度八分圆中
ending octant = 2 因为圆弧终点在 90 度八分圆中