教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 外语考试 >

南昌大学计算机图形学实验报告

来源:网络收集 时间:2025-09-24
导读: 实 验 报 告 实验课程:计算机图形学 学生姓名:涂汉江 学号:专业班级:数媒101班 2012年 12 月 16号 目录 实验1 绘制直线和圆……………………………………………………………….1 实验2 种子填充算法……………………………………………………………….3

实 验 报 告

实验课程:计算机图形学 学生姓名:涂汉江 学号:专业班级:数媒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字,全部文档内容请下载后查看。喜欢就下载吧 ……

南昌大学计算机图形学实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1694158.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)