《计算机图形学》实验4实验报告。
实验题目:参数曲线绘制。
实验内容:1 园的参数曲线绘制。
2显式数学曲线描绘程序。
3贝赛尔曲线绘制。
编写程序调用验证之。
参考资料:1
4 数学曲线绘制。ppt和实验3的参考ppt
基本概念:(详细叙述自己对实验内容的理解)
参数曲线的绘制就是利用微分思想,由已知的方程将某些范围内的点描出来,然后利用划线函数链接,从而完成一些比较复杂的曲线。
算法设计:(详细叙述自己设计的的算法)
1)圆可用正负法,dda生成法,bresenham生成算法,圆弧离散生成算法来生成。
正负法:先选择一个像素点(可计算出来),然后计算这个点,即像素点是否在圆内,若在圆内,则选择此像素点右面那一个;若不再圆内,则选择此像素点下面那一个,如此循环即可。
圆的参数生成方法:由于圆的特性(距离某一点成定长的点的集合)可知只要找到这些点所在的像素点就可以绘制一个圆。因此通过圆心做标和半径就可以计算出来所有的点。
由于通过圆心和半径来计算所有像素点包括乘法和平方根运算,计算量较大,所画象素位置间的间距也是不一致的。因此有两种改进方法:
a, dda生成法:
通过已知的像素点的坐标来计算出下一个点的坐标,为了在光栅系统上得到连续的边界,可选取适当的间隔(x轴的下一个坐标),这样绘制的象素位置大约为一个单位间隔,从而较为快速的绘制出圆。
b, bresenham生成算法:
因为像素点是一块一块的小正方体,因此与一个像素点相邻的另一个像素低点(假设画第一象限内的圆弧)在右边,右下,下面。通过选择此像素点到原点像素低点的距离和圆的半径最接近的一个,如此循环,就可以画出第一象限的弧长,其它象限类似。
圆弧离散生成算法:一句话,无限多边形就是圆。
2)数学曲线的描绘。
类似圆的一般参数画法,已知方程,然后设置起点坐标,x轴变化长度,以及步长,由方程计算出y点坐标,连线,从而画出曲线。
3)贝赛尔曲线绘制。
曲线通过控制曲线上的四个点(起始点、终止点以及两个相互分离的中间点)来创造、编辑图形。其中起重要作用的是位于曲线**的控制线。这条线是虚拟的,中间与贝塞尔曲线交叉,两端是控制端点。
移动两端的端点时贝塞尔曲线改变曲线的曲率(弯曲的程度);移动中间点(也就是移动虚拟的控制线)时,贝塞尔曲线在起始点和终止点锁定的情况下做均匀移动。
**:(给出和实验内容相关的j**a程序和注解,不要辅助**,否则扣分)
/圆的一般参数生成方法(已知原点和半径,从圆的左边开始,由x坐标依次计算y坐标先画上半圆,再将画笔起始点移动到开始的位置,画下半圆)
public void applicationproceesing (graphics g)
/调整画笔位置。
x=xc-r;
y=yc;for(;x<=1;x+=0.01)//画下半圆。
dda绘制圆:(用已知的圆上的点的坐标求解下一个点的坐标)
public void dda (graphics g)
数学曲线绘制:
double x=-2.0; /曲线的起始点。
double y=f(x);
//抬笔移动到xy点处。
double deltax=0.05; /x的步长。
for(int i=0;i<80;ix方向走80步。
x+=deltax; y=f(x);
//落笔画直线到xy点处。
贝塞尔:public void paint(graphics g)
x0=p[0].x; /起点。
y0=p[0].y;
for(t=0;t<=1;t+=0.01)
运行结果:(给出运行结果的截屏和说明)
1)这是用圆的参数生成方法画圆,计算的点越多,越接近圆。
1)dda绘制圆。
数学曲线绘制:
贝赛尔曲线绘制:
实验体会:(简单说明学习到的知识点和收获)
通过增加需要描绘的点的个数,理解曲线的画法过程。曲线可以用描点,划线的方式来绘制,不同于直线的是,由于曲线比较圆滑,所以需要描更多的点,当连接起这些点时,曲线就会显示出圆滑的特性。
实验4实验报告
visual foxpro面向对象程序设计与应用 实验报告。一 实验目的及要求。1.熟练掌握表的创建 表的打开与关闭 表结构的显示与修改 表的复制及表与数组的数据传递。2.记录的输入 追加与插入,记录的定位 记录的显示 记录的修改 记录的删除 记录的恢复。二 实验内容 实验前,务必设置好默认工作目录...
大学物理实验4 实验报告实验4利用单摆测量重力加速度
云南大学软件学院实验报告。课程 大学物理实验学期 2013 2014学年第一学期任课教师 谢仲文刘宇 专业 学号 姓名 成绩。实验4 利用单摆测量重力加速度。一 实验目的。1 学习实验方案设计的基本方法。2 学习根据已知条件和测量精度的要求,设计实验方案。3 学习分析测量中系统误差的主要 及其修正方...
实验二实验报告
电子电路与系统基础实验 2014年第一次实验。实验题目 仪器使用及常用基本电量的测量。班级 无36 学号 2013011178 姓名 马昊宇。日期 2014 5 3 一 实验目的。1 掌握二极管和稳压二极管的特性 掌握二极管的基本应用 2.加深对二极管非线性特性的理解 3 掌握判断二极管好坏和极性的...