- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计科本 082 班 李凤艳 学号 0804402214
一、 实验名称
计算机画圆二、 实验目的
通过上机实验编程实现计算机画圆,充分理解体会学习,图形学
学画图的原理,加深印象。
三、 实验内容
实现计算机画圆
四、 源程序
由于系统自动生成很多代码,大部分都一样,在此程序中省略, 只列出一些关键实现代码。
void CMovecircleView::OnDraw(CDC* pDC)
{
CMovecircleDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);
CRect Rect; GetClientRect(Rect); CDC MemDC;
CDC Picture;
CBitmap Bitmap,*OldBitmap;
//CBitmap Bitmap;
//CBitmap OldBitmap; Bitmap.LoadBitmap(IDB_BITMAP1); MemDC.CreateCompatibleDC(pDC); OldBitmap=MemDC.SelectObject(Bitmap);
MemDC.BitBlt(0,0,Rect.Width(),Rect.Height(),Picture,0,0,SRCCOPY); MemDC.SetBkMode(TRANSPARENT); MemDC.SetTextColor(RGB(255,255,255));
MemDC.BitBlt(0,0,Rect.Width(),Rect.Height(),Picture,0,0,SRCCOPY);
MemDC.TextOut(100,50,欢迎来到计算机图形学);
pDC-BitBlt(0,0,Rect.Width(),Rect.Height(),MemDC,0,0,SRCCOPY);
}
第 2 页(共 4 页)
void CMovecircleView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default m_bLButtonDown = TRUE; // 设左鼠标键按下为真
m_pStart = point; SetCapture(); // 设置鼠标捕获
CView::OnLButtonDown(nFlags, point);
}
void CMovecircleView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default ReleaseCapture();
if (m_bLButtonDown)
{
CDC* pDC = GetDC(); // 获取设备上下文pDC-SelectStockObject(NULL_BRUSH); pDC-SelectObject(pLinePen); // 选择笔
pDC-SetROP2(R2_COPYPEN); // 设置为覆盖绘图方式
CPoint center; // 圆心
//calculate the center center.x=(float(m_pStart.x+point.x))/2; center.y=(float(m_pStart.y+point.y))/2;
// nRadius is a class member, double
nRadius=sqrt(double(point.y-m_pStart.y)*(point.y-m_pStart.y)+(point.x- m_pStart.x)*(point.x-m_pStart.x))/2;
pDC-Ellipse(center.x-nRadius, center.y-nRadius, center.x+nRadius, center.y+nRadius);
ReleaseDC(pDC); // 释放设备上下文
m_bLButtonDown = FALSE; // 重设左鼠标键按下为假
m_bErase = FALSE; // 重需要擦除为假
}
2
第 3 页(共 4 页)
CView::OnLButtonUp(nFlags, point);
}
void CMovecircleView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default if(m_bLButtonDown==TRUE)
{
CD
您可能关注的文档
- 计算机教育2分析和总结.docx
- 计算机教育3分析和总结.docx
- 计算机接口技术随堂练习答案.docx
- 计算机考银行笔试.docx
- 计算机控制技术课程设计指导书.docx
- 计算机控制技术实验1和实验2.docx
- 计算机控制技术习题.docx
- 计算机控制系统练习题.docx
- 计算机培训教学大纲与教学计划.docx
- 计算机软件 第三章 练习题.docx
- 2025四川南充市公路管理局南充市水务局遴选3人笔试备考题库附答案解析.docx
- 2025年清水河县事业单位联考招聘考试历年真题完美版.docx
- 2025年正安县事业单位联考招聘考试历年真题完美版.docx
- 2025年金沙县事业单位联考招聘考试真题汇编新版.docx
- 2025年乐业县辅警招聘考试真题汇编及答案1套.docx
- 2025年新龙县事业单位联考招聘考试历年真题附答案.docx
- 2025年淮阳县事业单位联考招聘考试历年真题含答案.docx
- 2025年紫金县事业单位联考招聘考试真题汇编含答案.docx
- 2025年永福县事业单位联考招聘考试历年真题推荐.docx
- 2025年睢县事业单位联考招聘考试历年真题含答案.docx
原创力文档


文档评论(0)