- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学实验
肖加清
1
实验一 图形学实验基础
一、实验目的
(1)掌握 VC++绘图的一般步骤;
(2)掌握 OpenGL 软件包的安装方法;
(3)掌握 OpenGL 绘图的一般步骤;
(4)掌握 OpenGL 的主要功能与基本语法。
二、实验内
1、VC++绘图实验
(1)实验内容:以下是绘制金刚石图案。已给出 VC++参考程序,但
里面有部分错误,请改正,实现以下图案。
N=3
2
N=4
N=5
N=10
3
N=30
N=50
(2)参考程序
// 自定义的一个类
//此代码可以放在视图类的实现文件(.cpp) 里
class CP2
{
public:
4
CP2();
virtual ~CP2();
CP2(double,double);
double x;
double y;
};
CP2::CP2()
{
this-x=0.0;
this-y=0.0;
}
CP2::~CP2()
{
}
CP2::CP2(double x0,double y0)
{
this-x=x0;
this-y=y0;
}
5
//视图类的一个成员函数,这个成员函数可以放在 OnDraw 函数
里调用。
//在视图类的 文件(.h)里定义此函数
void Diamond();
//在视图类的实现文件(.cpp)里实现此函数
void CTestView::Diamond()
{
CP2 *P;
int N;
double R;
R=300;
N=10;
P=new CP2[N];
CClientDC dc(this);
CRect Rect;
GetClientRect(Rect);
double theta;
theta=2*PI/N;
for(int i=0;iN;i++)
6
{
P[i].x=R*cos(i*theta);
P[i].y=R*sin(i*theta);
}
for(i=0;i=N-2;i++)
{
for(int j=i+1;j=N-1;j++)
{
//其中 ROUND 函数需要自己实现,实现四舍五入的
功能。
dc.MoveTo(ROUND(P[i].x+Rect.right/2),ROUND(P[i].y+Rect.botto
m/2));
dc.LineTo(ROUND(P[j].x+Rect.right/2),ROUND(P[j].y+Rect.bottom
/2));
文档评论(0)