Секторная Диаграмма

Rolana

New Member
29.11.2013
4
0
#1
Очень нужна помощь
Задание: нарисовать секторную диаграмму где значения x={11,12,23,40,50,60}

Вот, то что я уже написала:
C++:
 int x=500, y=230, xp=500, yp=230;
double d;
...

case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: добавьте любой код отрисовки...

//Ellipse(hdc,50,10,500,450); //center (275;230)

d=(11*2*3.14)/196;
x=int(xp*cos(d)+yp*sin(d));
y=int(-xp*sin(d)+yp*cos(d));
Pie(hdc,50,10,500,450,xp,yp,x,y);
xp=x; yp=y;

d=(12*2*3.14)/196;
x=int(xp*cos(d)+yp*sin(d));
y=int(-xp*sin(d)+yp*cos(d));
Pie(hdc,50,10,500,450,xp,yp,x,y);
xp=x; yp=y;

d=(23*2*3.14)/196;
x=int(xp*cos(d)+yp*sin(d));
y=int(-xp*sin(d)+yp*cos(d));
Pie(hdc,50,10,500,450,xp,yp,x,y);
xp=x; yp=y;

d=(40*2*3.14)/196;
x=int(xp*cos(d)+yp*sin(d));
y=int(-xp*sin(d)+yp*cos(d));
Pie(hdc,50,10,500,450,xp,yp,x,y);
xp=x; yp=y;

d=(50*2*3.14)/196;
x=int(xp*cos(d)+yp*sin(d));
y=int(-xp*sin(d)+yp*cos(d));
Pie(hdc,50,10,500,450,xp,yp,x,y);
xp=x; yp=y;

d=(60*2*3.14)/196;
x=int(xp*cos(d)+yp*sin(d));
y=int(-xp*sin(d)+yp*cos(d));
Pie(hdc,50,10,500,450,xp,yp,x,y);
xp=x; yp=y;

EndPaint(hWnd, &ps);
break;
Вот, то что мне показывает программа:


Ну, никак не могу понять как сделать повороты секторов. Если убрать везде xp=x; yp=y;, то прога рисует правильных размеров секторы в одном месте. А если не убирать, то у секторов какие-то странные размеры.