文档介绍:实验 4 实验报告格式《计算机图形学》实验 4 实验报告实验题目: 参数曲线绘制实验内容: 1 园的参数曲线绘制。 2 显式数学曲线描绘程序。 3 贝赛尔曲线绘制。编写程序调用验证之。参考资料: 1 2 3 4 和实验 3 的参考 ppt 基本概念: (详细叙述自己对实验内容的理解) 参数曲线的绘制就是利用微分思想, 由已知的方程将某些范围内的点描出来, 然后利用划线函数链接,从而完成一些比较复杂的曲线。算法设计: (详细叙述自己设计的的算法) (1 )圆可用正负法, dda 生成法, Bresenham 生成算法,圆弧离散生成算法来生成。正负法:先选择一个像素点(可计算出来) ,然后计算这个点,即像素点是否在圆内,若在圆内, 则选择此像素点右面那一个; 若不再圆内, 则选择此像素点下面那一个, 如此循环即可。圆的参数生成方法: 由于圆的特性( 距离某一点成定长的点的集合) 可知只要找到这些点所在的像素点就可以绘制一个圆。因此通过圆心做标和半径就可以计算出来所有的点。由于通过圆心和半径来计算所有像素点包括乘法和平方根运算, 计算量较大, 所画象素位置间的间距也是不一致的。因此有两种改进方法: A,D da 生成法: 通过已知的像素点的坐标来计算出下一个点的坐标, 为了在光栅系统上得到连续的边界,可选取适当的间隔( X 轴的下一个坐标) ,这样绘制的象素位置大约为一个单位间隔,从而较为快速的绘制出圆。 B, Bresenham 生成算法: 因为像素点是一块一块的小正方体, 因此与一个像素点相邻的另一个像素低点(假设画第一象限内的圆弧) 在右边, 右下, 下面。通过选择此像素点到原点像素低点的距离和圆的半径最接近的一个, 如此循环, 就可以画出第一象限的弧长, 其它象限类似。圆弧离散生成算法: 一句话,无限多边形就是圆。(2 )数学曲线的描绘类似圆的一般参数画法, 已知方程, 然后设置起点坐标,X 轴变化长度, 以及步长, 由方程计算出 y 点坐标,连线,从而画出曲线。(3 )贝赛尔曲线绘制。曲线通过控制曲线上的四个点( 起始点、终止点以及两个相互分离的中间点) 来创造、编辑图形。其中起重要作用的是位于曲线中央的控制线。这条线是虚拟的, 中间与贝塞尔曲线交叉,两端是控制端点。移动两端的端点时贝塞尔曲线改变曲线的曲率(弯曲的程度) ;移动中间点( 也就是移动虚拟的控制线)时, 贝塞尔曲线在起始点和终止点锁定的情况下做均匀移动。代码: (给出和实验内容相关的 Java 程序和注解,不要辅助代码,否则扣分) // 圆的一般参数生成方法( 已知原点和半径, 从圆的左边开始,由x 坐标依次计算 y 坐标先画上半圆,再将画笔起始点移动到开始的位置,画下半圆) public void ApplicationProceesing (Graphics g) { double xc=0,yc=0,R=1; // 原点为( 0,0 ) ,半径为 1 double x,y; x=xc-R; y=yc; (x,y); // 抬笔移到起点 for(;x<=1;x+=) // 画上半圆{ y=(R*R-(x-xc)*(