计算机图形学大作业,是我用MFC做的,由于是用MFC做的,所以画图部分比较慢,特别是种子填充,所以图形变换和多边形裁剪是另外两个单独的小程序。
全部的功能有画DDA直线,中心画圆,椭圆,矩形,多边形,反走样直线,种子填充,扫描线填充,多边形裁剪和图形变换。
2015/11/4 17:57:56 7.78MB 计算机图形学 mfc 绘图板
1
本程序实现了计算机图形学中基本图形:直线、圆、以及椭圆的绘制。
其中直线可采用DDA画线算法与Bresenham画线算法两种方法绘制;
圆采用了中点圆画线算法绘制;
椭圆采用了中点椭圆画线算法绘制。
此外还实现了对图形的平移、旋转和缩放三种基本操作。
其中缩放操作提供了普通模式与智能模式,使用后者可以消弭普通模式缩放时产生的像素稀疏以及锯齿化现象。
同时新版本对操作界面进行了改进和优化。
2018/7/3 21:48:41 280KB 中点圆 中点椭圆 DDA Bresenham
1
实验1直线段的扫描转换实验类型:设计性实验类别:专业实验实验目的1.通过实验,进一步理解直线段扫描转换的DDA算法、中点bresenham算法及bresenham算法的基本原理;
2.掌握以上算法生成直线段的基本过程;
3.通过编程,会在C/C++环境下完成用DDA算法、中点bresenham算法及bresenham算法对任意直线段的扫描转换。
实验设备及实验环境计算机(每人一台)VC++6.0或其他C/C++语言程序设计环境实验学时:2学时实验内容用DDA算法中点bresenham算法及bresenham算法实现任意给定两点的直线段的绘制(直线宽度和线型可自定)。
实验步骤:1、复习有关算法的基本原理,明确实验目的和要求;
2、依据算法思想,绘制程序流程图;
3、设计程序界面,要求操作方便;
4、用C/C++语言编写源程序并调试、执行;
5、分析实验结果6、对程序设计过程中出现的问题进行分析与总结;
7、打印源程序或把源程序以文件的方式提交;
8、按格式要求完成实验报告。
实验报告要求:1、各种算法的基本原理;
2、各算法的流程图3、实验结果及分析(比较三种算法的特点,界面插图并注明实验条件)4、实验总结(含问题分析及解决方法)
1
一、1.Pleasedownloadandinstalltheglutlibrary.2.WriteacompleteprogramusingthefollowingcodestodrawaSierpinskigasket.voidmyinit(){//attributesglClearColor(1.0,1.0,1.0,1.0);glColor3f(1.0,0.0,0.0);//setupviewingglMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0.0,50.0,0.0,50.0);glMatrixMode(GL_MODELVIEW);}voiddisplay(){GLfloatvertices[3][3]={{0.0,0.0,0.0},{25.0,50.0,0.0},{50.0,0.0,0.0}};//anarbitrarytriangleintheplanez=0;GLfloatp[3]={7.5,5.0,0.0};//orsetanydesiredinitialpointwhichisinsidethetriangle;intj,k;intrand();glBegin(GL_POINTS);for(k=0;k<5000;k++){/*pickarandomvertexfrom0,1,2*/j=rand()%3;//computenewlocation;p[0]=(p[0]+vertices[j][0])/2;p[1]=(p[1]+vertices[j][1])/2;//displaynewpointglVertex3fv(p);}glEnd();glFlush();}#includevoidmain(intargc,char**argv){glutInit(&argc;,argv);glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);glutInitAWindowSize(500,500);glutInitWindowPosition(0,0);glutCreateWindow(“SimpleOpenGLExample”);glutDisplayFunc(display);myinit();glutMainLoop();}3.实现DDA和Bresenham画线算法(1)画10万以上随机生成的直线段,比较两个算法的平均时间.(2)分别把屏幕上的1*1,5*5,9*9像素当作直线段上的一个点,观察线段的走样情况.二、请写一个OpenGL(如果熟悉WebGL也可以用)程序完成如下任务(1)读入三维网格模型的obj文件;(2)用OpenGL函数glTranslatef()对模型模型进行平移,使得其重心位于原点;(3)用函数glLookAt()设置视点,并且要求试点绕模型一周,以便用透视投影观察各个侧面;(4)要求利用真实感绘制对模型进行渲染.(利用OpenGL函数设置光源,材质,计算好每个三角形的法向量后,利用OpenGL的glNormal函数给待绘制的三角形设置法向量).绘制的结果大概如下:三、本实验为综合实验,任务是利用光线跟踪算法进行Whitted全局光照计算,并对读入场景进行真实感绘制。
(特别提示:网上类似的projects可以参考,但不能照抄.如http://tobias.isenberg.cc/graphics/LabSessions/RaytracingProject,http://physbam.stanford.edu/links/ray_tracing/project_ray_tracing.htmlhttps://www.cs.utexas.edu/~fussell/courses/cs354/assignments/raytracing/handout.shtml)(1)参加对象:本实验针对所有选课同学,3-5人组成一个小组,共同实现;
非15级同学在组队方面有困难的话可与老师沟通.(2)实验结果提交:每人都要求提交一份.内容包括a.源程序;可执行代码;三维场景数据;同组的同学这部
2021/5/20 14:17:55 48.13MB 华南理工大学 图形学实验
1
本系统需要实现以下内容:1、给出系统框架。
2、调用画点的函数,分别用DDA、中点Bresenham算法和改进Bresenham算法绘制直线和中点算法绘制直线、用不同的算法绘制圆和椭圆,并各自比较算法精度与效率的差别。
3、实现二维图形的变换。
(包括平移,放缩,旋转,错切以及复合变换)4、运用所学的区域填充算法实现区域填充。
5、运用所学算法实现线段裁剪以及多边形裁剪(多边形裁剪为可选)。
6、本人实现其它附加以及需要完善的功能。
2015/6/16 17:18:33 2.89MB 图形学基础 变换 缩放 旋转
1
计算机图形学原理课,用C言语实现DDA算法画直线,实验操作,下载后直接用VC或者VC++打开工作空间即可。
2022/9/8 9:36:13 1.32MB DDA画直线
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡