关于extend neighbor

CPoint CDrawtestView::fun( CPoint ptCenter, int iRadius, int iInterval )

{

       for(int i = 1; true; i++)

       {

              double iTempRadius = iRadius * i;//y de cha ju

              double origin_x = ptCenter.x - MAX_LENGTH/2;

              double iTempInterval =(double)MAX_LENGTH/(double)(iInterval-1);

 

              CPoint TempPoint;

              for( double j = 0; j<=MAX_LENGTH;j+=iTempInterval)

              {

                     TempPoint.x = origin_x + j+0.5;

                     TempPoint.y = ptCenter.y + iTempRadius+0.5;

                     vector<CRect* >::iterator it = m_vcRect.begin();

                     for(;it!=m_vcRect.end();++it)

                     {

                            if( (*it)->PtInRect(TempPoint))

                                   break;

                     }

                     if( it == m_vcRect.end())

                            return TempPoint;

              }

       }

        return ptCenter;

}

 

///

void CDrawtestView::OnDraw(CDC* pDC)

{

       CDrawtestDoc* pDoc = GetDocument();

       ASSERT_VALID(pDoc);

       // TODO: add draw code for native data here

       CPoint pt = CPoint(200,200);

       CRect rect;

       rect.left =pt.x-20;

       rect.right=pt.x + 20;

       rect.top = pt.y -20;

       rect.bottom=pt.y+20;

       pDC->Rectangle(rect);

       for( int i = 0;i<15;i++)

       {

              CPoint TempPt = fun(pt,60,5);

              CRect* TempRect = new CRect(TempPt.x-5,TempPt.y-5,TempPt.x+5,TempPt.y+5);

              m_vcRect.push_back(TempRect);

       }

       for( vector<CRect*>::iterator it = m_vcRect.begin();it!=m_vcRect.end();++it)

       {

              pDC->Rectangle(**it);

              CPoint TestPt = (*it)->CenterPoint();

       }

}

fun( CPoint ptCenter, int iRadius, int iInterval )

iRadius 用来控制上下的间距

iInterval用来控制左右小方块之间的间距

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值