Если углы задаются со знаком минус, то соответствующие концы дуг соединяются с центром, образуя круговой или эллиптический сектор. Такие фигуры могут использоваться для построения круговых диаграмм. Приведенный ниже пример демонстрирует построение дуги и сектора, вписывающихся в один и тот же центральный угол эллипсов разного размера. Углы начального и конечного радиус-векторов заданы в радианах и, соответственно, равны 30 и 60 градусам.
Программа 8_07.bas
RЕМ Построение дуги и сектора эллипса
SCREEN 12
VIEW (0,0)-(400,400)
LINE (0,200)-(400,200),7 :' построение "оси" .х
LINE (200,0)-(200,400),7 :' построение "оси" у
CIRCLE (200,200),120,4,,,.75 :' полный эллипс
CIRCLE (200,200),90,4,,,.75 :' полный эллипс
CIRCLE (200,200),120,15,.5236,1.0472,.75 :' белая дуга
CIRCLE (200,200),90,14,-.5236,-1.0472,.75 :' желтый сектор
END
Четвертый необязательный параметр в операторе CIRCLE задает явный цвет соответствующей фигуры, который может отличаться от цвета переднего плана, установленного по оператору C0L0R.
В BGI-пакете для построения каждой из описанных выше графических фигур используется отдельная процедура:
arc(x,у,a1,a2,r); //дуга окружности
circle(х,у,r); //окружность
ellipse(х,у,al,a2,rх,rу); //дуга эллипса или полный эллипс
В отличие от QBasic положение начального и конечного радиус-векторов здесь задается целочисленными значениями углов al и а.2 в градусах, которые могут быть как положительными, так и отрицательными. Второе отличие связано с явным заданием обеих полуосей эллипса гх и гу.