ЗАДАНИЕ VII

Тема: Деловая графика.
Цель: Построение круговой двухмерной диаграммы.

Перед началом работы необходимо:

владеть работой с клавиатурой и мышкой;
владение основными приемами работы в Stratum 2000.

Задание 1

        Постройте схему, отображающую двухмерную круговую диаграмму, из 4 секторов (красный, зеленый, синий и желтый). С помощью управляторов проверьте работоспособность диаграммы.
        Создайте новый проект. Поместите на главную схему имидж GraphicSpace.
        Создайте новый имидж (например A01) с текстом:

a := a1 + a2 + a3 + a4
x1 := (a1*2*PI) / ~a
x2 := (a2*2*PI) / ~a
x3 := (a3*2*PI) / ~a
x4 := (a4*2*PI) / ~a
b1 := x1
b2 := x1 + x2
b3 := x1 + x2 + x3
b4 := 2*pi //x1 + x2 + x3 + x4
c1 := "красный " + String(x1*100 / (x1 + x2 + x3 + x4)) + "%"
c2 := "синий " + String(x2*100 / (x1 + x2 + x3 + x4 )) + "%"
c3 := "зеленый " + String(x3*100 / (x1 + x2 + x3 + x4 )) + "%"
c4 := "желтый " + String(x4*100 / (x1 + x2 + x3 + x4 )) + "%"

Назначение переменных :

a1,a2,a3,a4 входные величины
a сумма входных величин
x1,x2,x3,x4 относительные углы поворота секторов в радианах
b1,b2,b3,b4 абсолютные углы поворота секторов в радианах
с1,c2,c3,c4 текстовые переменные, содержащие величины секторов в процентах

        Установите на схему четыре имиджа Pie1 (сектор) для отображения секторов диаграммы. Соедините между собой переменные x,y,r1,r2 во всех имиджах, для согласования центров.   Установите в переменные имиджей Pie x,y - координаты диаграммы (например 100,100), r1,r2 - радиусы (например 60,60) и в BrushColor - цвет каждого сектора. Соедините переменные b1,b2,b3,b4 имиджа A01 c переменными angle1 и   angle2 каждого сектора. Установите на схему четыре имиджа VSlider2 (управлятор) для задания величин секторов. Соедините переменные Value каждого из них с переменными a1,a2,a3,a4 имиджа A01 соответственно. Установите на схему четыре имиджа Text1 (текст) для отображения величин секторов в процентах. Установите переменные  x,y - координаты текста и соедините переменные text каждого из них с переменными c1,c2,c3,c4 имиджа A01 соответственно.

        Поясним значения углов. Первый сектор рисуется от 0 до b1. Второй сектор от b1 до b2. Третий сектор от b2 до b3. Четвертый сектор от b3 до 2PI или до b4. Поэтому первому сектору требуется подать b1 на angle2. angle1 у него изначально равен 0. Второму сектору b1 на angle1 и b2 на angle2. Третьему аналогично. Четвертому аналогично: b3 на angle1 и b4 на angle2, или b3 на angle1 а angle2 установить в 2pi, что равно 6.28236.

        Обратите внимание на то, что в процессе расчета может возникнуть деление на 0. Поэтому при возникновении этого сообщения выбирайте кнопку "Больше не замечать" и запускайте проект вновь.

 

Пример собранной схемы:

lab007.gif (8661 bytes)

Результаты ее работы:

lab007_1.gif (5271 bytes)

Здесь Вы можете загрузить проект, выделяющий самую большую долю.

1. Библиотека GRAPH2D.LIB
2. Библиотека CONTROLS.LIB