正在加载图片...
附录5:七巧板程序 pDC->Polygon(m pointList, m nPointCount) pDC->SelectObject(ppenold) pDC->SelectObject(pbrushold /检测一点是否在拼图块中 BOOL CChip: Pt In Chip (point point) rgn. CreatePolygonRgn(m pointList, m nPointCount, 0) return rgn. PtInRegion (point) /取拼图块的包含矩形 LPCRECT CChip: GetRect static rect rect rgn. CreatePolygonRgn(m pointList, m nPointCount, 0) rgn. GetRgnBox(&rect) rect right++ rect, bot tom++ return &rect /旋转拼图块 oid CChip: Rotation O CRgn rgn (m pointList, m nPoint Count, 0) double x=rect. left+rect. Width0/2;//计算旋转中心 double y= rect. toptrect Height(/2 double dx, dy: for (int i=0: i<m nPointCount: i++) /旋转各点附录 5:七巧板程序 374 pDC->Polygon(m_pointList, m_nPointCount); pDC->SelectObject(ppenOld); pDC->SelectObject(pbrushOld); } // 检测一点是否在拼图块中 BOOL CChip::PtInChip(POINT point) { CRgn rgn; rgn.CreatePolygonRgn(m_pointList, m_nPointCount, 0); return rgn.PtInRegion(point); } // 取拼图块的包含矩形 LPCRECT CChip::GetRect() { static RECT rect; CRgn rgn; rgn.CreatePolygonRgn(m_pointList, m_nPointCount, 0); rgn.GetRgnBox(&rect); rect.right++; rect.bottom++; return &rect; } // 旋转拼图块 void CChip::Rotation() { CRect rect; CRgn rgn; rgn.CreatePolygonRgn(m_pointList, m_nPointCount, 0); rgn.GetRgnBox(&rect); double x = rect.left+rect.Width()/2; // 计算旋转中心 double y = rect.top+rect.Height()/2; double dx, dy; for(int i=0; i<m_nPointCount; i++) // 旋转各点 {
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有