C-C++程序设计实用案例教程课件-第八章.pptxVIP

  • 3
  • 0
  • 约5.17千字
  • 约 41页
  • 2019-10-26 发布于广东
  • 举报

C-C++程序设计实用案例教程课件-第八章.pptx

2018.8;目录;第八章:综合编程实例;扑克洗牌;花色定义;牌的结构体;Poker类;Poker类;Poker类;Poker类;二叉树重建可视化;树结点;二叉树绘制器;二叉树绘制器;TreeDrawer函数中一个重要成员函数是RefreshBoundBox,它不仅要刷新包围盒,还要计算出每个结点的位置、张角。另外一个很重要的功能是避免结点之间的碰撞。这里采用宽度优先遍历方法计算每一层从左往右的每个结点的绘制信息,代码如下;TreeDrawer的绘制函数Draw也采用了宽度优先遍历。需要指出的是RefreshBoundBox函数虽然计算每个结点的绘制位置,但在实际窗口中,需要将结点位置做坐标映射,使其尽量铺满实际窗口。这里的坐标映射实际上就是先缩放再平移,代码如下:; //绘制圆形结点 Arc(hdc, x-m_NodeRadius*m_Scale, //left y-m_NodeRadius*m_Scale, //top x+m_NodeRadius*m_Scale, //right y+m_NodeRadius*m_Scale, //bottom x-m_NodeRadius*m_Scale, //start point X

文档评论(0)

1亿VIP精品文档

相关文档