南昌大学计算机图形学实验报告
实 验 报 告
实验课程:计算机图形学 学生姓名:涂汉江 学号:专业班级:数媒101班
2012年 12 月 16号
目录
实验1 绘制直线和圆……………………………………………………………….1
实验2 种子填充算法……………………………………………………………….3
实验3 线条的剪裁………………………………………………………………….6
实验4 B样条曲线绘制……………………………………………………………..10
实验 5 deboor曲线的绘制…………………………………………………………..13
南昌大学实验报告
void C线与圆2View::midcircle(int r,int color,CDC *pDC) {
} else { }
d+=2*(x-y)+5; x++; y--;
int x=0; float d; d=1.25-r;
pDC->SetPixelV(x+100,y+100,RGB(255,0,while(x<y) {
if(d<0) {
d+=2*x+3; x++;
int y=r;
学生姓名:涂汉江学号:6100410181专业班级:数字媒体101班
实验类型:□验证□综合■设计□创新 实验日期:2012-12-16
实验1 绘制直线和圆
1.实验目的
掌握基本图形的绘制
0));
2.实验内容
1.、绘制一条直线 2、.绘制一个圆
3.实验环境
1、个人计算机
2、Windows7操作系统 3、VS2010
4.实验步骤
主要的代码:
1、线的实现代码:
这里采用的是数值微分法的方法
void C线与圆2View::dda(int x0,int y0,int x1,int y1,int color,CDC *pDC) { }
pDC->SetPixelV(x,int(y+0.5),RGB(255 }
y=y+k;
,0,0));
float dx,dy,k,y; dx=x1-x0; dy=y1-y0; k=dy/dx; y=y0;
for(int x=x0;x<=x1;x++) {
pDC->SetPixelV(x+100,y+100,RGB(255,0,pDC->SetPixelV(y+100,x+100,RGB(255,0,pDC->SetPixelV(-x+100,y+100,RGB(255,0pDC->SetPixelV(x+100,-y+100,RGB(255,0pDC->SetPixelV(-x+100,-y+100,RGB(255,pDC->SetPixelV(-y+100,x+100,RGB(255,0pDC->SetPixelV(y+100,-x+100,RGB(255,0pDC->SetPixelV(-y+100,-x+100,RGB(255,}
0)); 0)); ,0)); } ,0)); 0,0)); ,0)); ,0)); 0,0));
2、圆的实现代码
这里采用的是中点画圆算法
3、头文件包含的文件 #include "stdafx.h"
// SHARED_HANDLERS 可以在实现预览、
缩略图和搜索筛选器句柄的
// ATL 项目中进行定义,并允许与该项目共享文档代码。
#ifndef SHARED_HANDLERS #include "线与圆.h" #endif
#include "线与圆Doc.h" #include "线与圆View.h"
#ifdef _DEBUG
#define new DEBUG_NEW #endif
4、调用部分
void C线与圆View::OnDraw(CDC* pDC) { C);
C线与圆Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc)
return;
midcircle(50,RGB(255,0,0),pDC); dda(200,200,300,300,RGB(255,0,0),pD
}
这里画的是原点为(100,100)半径为50的圆和一条以(200,200)和(300,300)为端点的线段。
5、实验结果如下截图:
5.实验思考和问题解决
本来只能做出1/4的圆的,通过改变中心坐标和坐标正负号,重复循环4次,最后得到一个整圆。前面有做直线的经验,所以总体来说还是比较顺利的。 上个学期学习了数值分析课程,也用过类似的描点函数,同样是设计函数,实现循环描点。
南昌大学实验报告
// NOTE - the ClassWizard will add // DO NOT EDIT what you see in
and remove mapping macros here. these blocks of generated code!
//}}AFX_MSG_MAP
// Standard printing commands ON_COMMAND(ID_FILE_PRINT, ON_COMMAND(ID_FILE_PRINT_DIRECT, ON_COMMAND(ID_FILE_PRINT_PREVIEW,
学生姓名:涂汉江学号:6100410181专业班级:数字媒体101班
实验类型:□验证□综合■设计□创新 实验日期:2012-12-16
实验2 种子填充算法 1.实验目的
掌握图形的填充算法
CView::OnFilePrint) CView::OnFilePrint) CView::OnFilePrintPreview) END_MESSAGE_MAP()
///////////////////////////////////////////////////////////////////////////// // CSeedfillView construction/destruction
CSeedfillView::CSeedfillView() { }
CSeedfillView::~CSeedfillView() { } BOOL
CSeedfillView::PreCreateWindow(CREATESTRUCT& cs) { }
///////////////////////////////////////////////////////////////////////////// // CSeedfillView drawing
void CSeedfillView::OnDraw(CDC* pDC)
2.实验内容
1.绘制一个矩形
2.用种子填充算法为其上色
3.实验环境
1.个人计算机
2.Windows7操作系统 3.VS2010
4.实验步骤
主要代码部分:
// seedfillView.cpp : implementation of the CSeedfillView class //
#include "stdafx.h" #include "seedfill.h"
#include "seedfillDoc.h" #include "seedfillView.h"
#ifdef _DEBUG
#define new DEBUG_NEW #undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
///////////////////////////////////////////////////////////////////////////// // CSeedfillView
IMPLEMENT_DYNCREATE(CSeedfillView, CView)
BEGIN_MESSAGE_MAP(CSeedfillView, CView)
//{{AFX_MSG_MAP(CSeedfillView)
// TODO: add construction code here
// TODO: Modify the Window class or // the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
styles here by modifying
CSeedfillDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);
// TODO: add draw code for native data
}
}
here
DrawRectangle(pDC); }
void CSeedfillView::seed(int x,int y,int fillcolor,int oldcolor,CDC* pDC) { }
void CSeedfillView::DrawRectangle(CDC* pDC) {
///////////////////////////////////////////////////////////////////////////// // CSeedfillView printing BOOL
CSeedfillView::OnPreparePrinting(CPrintInfo* pInfo) { }
void CSeedfillView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) {
pDC->SetPixelV(x,y,fillcolor);
} void {
// TODO: add cleanup after printing }
///////////////////////////////////////////////////////////////////////////// // CSeedfillView diagnostics
#ifdef _DEBUG
void CSeedfillView::AssertValid() const { }
void CSeedfillView::Dump(CDumpContext& dc) const { }
CView::Dump(dc); CView::AssertValid();
CSeedfillView::OnEndPrinting(CDC* // TODO: add e …… 此处隐藏:13644字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [外语考试]管理学 第13章 沟通
- [外语考试]07、中高端客户销售流程--分类、筛选讲
- [外语考试]2015-2020年中国高筋饺子粉市场发展现
- [外语考试]“十三五”重点项目-汽车燃油表生产建
- [外语考试]雅培奶粉培乐系列适用年龄及特点
- [外语考试]九三学社入社申请人调查问卷
- [外语考试]等级薪酬体系职等职级表
- [外语考试]货物买卖合同纠纷起诉状(范本一)
- [外语考试]青海省实施消防法办法
- [外语考试]公交车语音自动报站系统的设计第3稿11
- [外语考试]logistic回归模型在ROC分析中的应用
- [外语考试]2017-2021年中国隔膜泵行业发展研究与
- [外语考试]神经内科下半年专科考试及答案
- [外语考试]园林景观设计规范标准
- [外语考试]2018八年级语文下册第一单元4合欢树习
- [外语考试]分布式发电及微网运行控制技术应用
- [外语考试]三人行历史学笔记:中世纪人文主义思想
- [外语考试]2010届高考复习5年高考3年联考精品历史
- [外语考试]挖掘机驾驶员安全生产责任书
- [外语考试]某211高校MBA硕士毕业论文开题报告(范
- 用三层交换机实现大中型企业VLAN方案
- 斯格配套系种猪饲养管理
- 涂层测厚仪厂家直销
- 研究生学校排行榜
- 鄱阳湖湿地景观格局变化及其驱动力分析
- 医学基础知识试题库
- 2010山西省高考历年语文试卷精选考试技
- 脉冲宽度法测量电容
- 谈高职院校ESP教师的角色调整问题
- 低压配电网电力线载波通信相关技术研究
- 余额宝和城市商业银行的转型研究
- 篮球行进间运球教案
- 气候突变的定义和检测方法
- 财经大学基坑开挖应急预案
- 高大支模架培训演示
- 一种改进的稳健自适应波束形成算法
- 2-3-鼎视通核心人员薪酬股权激励管理手
- 我国电阻焊设备和工艺的应用现状与发展
- MTK手机基本功能覆盖测试案例
- 七年级地理教学课件上册第四章第一节