圆的内接三个圆,循环下去,怎样编程?如图~
http://my.csdn.net/my/album/detail/1229529
[解决办法]
计算几何大牛:http://www.codeproject.com/KB/recipes/Wykobi.aspx
排料问题大牛:http://www2.stetson.edu/~efriedma/packing.html
[解决办法]
[/Code=C/C++]void CMyprocView:: drawCircle(CDC *p,POINT point,int r)
{
if(r<1)
return ;
else{
int r1=(sqrt(3)*r)/(2+sqrt(3));
POINT p1;
p1.x=point.x-r1;
p1.y=point.y+(sqrt(3)*r1)/3;
drawCircle(p,p1,r1);
POINT p2;
p2.x=point.x+r1;
p2.y=point.y+(sqrt(3)*r1)/3;
drawCircle(p,p2,r1);
POINT p3;
p3.x=point.x;
p3.y=point.y-r+r1;
drawCircle(p,p3,r1);
}
::Sleep(30);
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
CBrush *pOldBrush=p->SelectObject(pBrush);
p->Ellipse(point.x-r,point.y-r,point.x+r,point.y+r);
}[/Code]
在OnDraw(CDC* pDC)函数中添加如下代码
- C/C++ code
RECT rect; GetClientRect(&rect); POINT po; po.x=rect.right/2; po.y=rect.bottom/2; drawCircle(pDC,po,(rect.right/2));