文章首发在oschina这个不是首发,但作者都是我一个人。这个是在上一篇费氏数列螺线画法的基础上改的所以注释有些奇怪,大家不要见怪哈
void
CMyDlg::OnButton2()
{
CDC *pDC;
pDC =
this
->GetDC();
int
iList[100];
iList[0]=1;
iList[1]=1;
int
i;
int
ix;
int
iy;
double
dR=200;
int
iStart=300;
int
iNum=9;
double
dx,dy;
double
dPi = 3.1415926535;
double
dPercision = 0.01;
double
da=0;
dx =
cos
(da)*dR;
dy =
sin
(da)*dR;
ix =
int
(dx);
iy =
int
(dy);
pDC->MoveTo(iStart+ix, iStart+iy);
for
(da=0; da<=2*dPi; da+=dPercision)
{
dx =
cos
(da)*dR;
dy =
sin
(da)*dR;
ix =
int
(dx);
iy =
int
(dy);
pDC->LineTo(iStart+ix, iStart+iy);
}
i=0;
dPercision = 2*dPi/9.00001;
for
(da=0; da<=2*dPi; da+=dPercision)
{
dx =
cos
(da)*dR;
dy =
sin
(da)*dR;
ix =
int
(dx);
iy =
int
(dy);
iList[i++]=ix;
iList[i++]=iy;
pDC->LineTo(iStart+ix, iStart+iy);
pDC->LineTo(iStart, iStart);
pDC->LineTo(iStart+ix, iStart+iy);
}
i=0;
dPercision = 2*dPi/9.00001;
dR=dR/
sin
(dPi-dPercision/2-dPi/2);
for
(da=0; da<=2*dPi; da+=dPercision)
{
dx =
cos
(da)*dR;
dy =
sin
(da)*dR;
ix =
int
(dx);
iy =
int
(dy);
iList[i++]=ix;
iList[i++]=iy;
pDC->LineTo(iStart+ix, iStart+iy);
pDC->LineTo(iStart, iStart);
pDC->LineTo(iStart+ix, iStart+iy);
}
pDC->SetTextColor(RGB(255, 0, 0));
i=0;
dPercision = 2*dPi/9.00001;
for
(da=dPercision/2; da<=2*dPi+dPercision/2; da+=dPercision)
{
dx =
cos
(da)*dR;
dy =
sin
(da)*dR;
ix =
int
(dx);
iy =
int
(dy);
iList[i++]=ix;
iList[i++]=iy;
pDC->LineTo(iStart+ix, iStart+iy);
pDC->LineTo(iStart, iStart);
pDC->LineTo(iStart+ix, iStart+iy);
}
好吧,这个像是车轮了。。