实验报告5多边形裁剪与填充要点_第1页
实验报告5多边形裁剪与填充要点_第2页
实验报告5多边形裁剪与填充要点_第3页
实验报告5多边形裁剪与填充要点_第4页
实验报告5多边形裁剪与填充要点_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(1)计算机办理图形的过程一般分为三个阶段:①图形的数字化;②图形操作;③图形输((2)模型坐标系(局部坐标系):当结构单个对象的数字模型时,为了方便,能够将其置一个特定(3)世界坐标系:为描述图形场景中全部图形之间的空间关系,将它们置于一个一致的坐标裁剪作用:选择显示的内容--图形在窗口内的部分被显示出来,窗口外的部分被裁剪掉。图形中每个基本元素都要经过裁剪,所以裁剪直接影响整个图形系统的效率。裁剪种类:二维裁剪、三维裁剪视见体:棱台、立方体(1)多边形的填补指在给定地区填上所需要的颜色,就是把多边形的极点表示变换为点阵表示,即从多边形的给定界限出发,求出位于其内部的各个像素,并将帧缓冲器内的各个对应元素设置相应的灰度或颜色。1)极点表示是用多边形的极点的序列来描述多边形,该表示几何意义2)点阵表示是用位于多边形内的象素的会合来刻划多边形,该方法固然没有多边形的几何(3)若线段既不知足“取”的条件,也不知足“弃”的条2)完整在窗口外的线段,称为完整不行见线第二步办理不可以判定为完整可见或完整不行见的线段。对余下部分再作第一步的判断,重复上述过程,直到直线段余下的部分可用第一步的判断得出必yi),0≤i≤n,xi,yi均为整数;置Pn+1=P0。每一条扫描线上着上这类特别颜色的点的个数必定是偶数(包含零)。b.设interior_point是一布尔变量。对每一条扫描线从左到右进行搜寻,假如目前是像素位a.地区是指已经表示成点阵形式的像素会合。在光栅图形中,地区可采纳内点表示和界限内点表示法:把位于给定地区内的全部像素一一列举出来的方法称为内点表示法。界限表示法:把位于给定地区界限上的像素一一列举出来的方法称为界限表示法。1)连通的地区:取地区内随意两点,在该地区内若从此中一点出发经过上、下、左右四2)连通的地区:取地区内随意两点,若从此中任一点出发,在而后确立与这一段相邻的上下两条扫描线上位于地区内的区段(需要填补的区间),从这些区间上各取一个种子点挨次把它们存起来,作为下次填补的种子点。频频进行这过程,直用新的颜色值进行填补,直到界限为止即象素颜色等于界限色。设区间两界限的横坐标分别{intc=0;}{{}{if((c&8)==8)//求交点{}{}{y=y0+wy*(xL-x0)/wx;x=xL;{}{}else//终点不在窗口内,交点作为新的终点{}}}//把新结点插入有序摆列的多边形单链表/*排序第一重点字结点的topx,第二重点字结点的delta*//*两个重点字由小到大*/}}}}}}}//插入新结点结束//把新结点作为多边形链表的头结点或许尾结点}}}//两个多边形单链表的归并:自己单链表与list单链表的归并elseif(a==null){//自己为空表}}}}/*两个表都不空*/if(xa<=xb){//决定归并后两个表的先后}}}}}//单链表归并结束//删除多边形单链表的结点}}}//多边形单链表的相邻结点while(p!=null){if(q.x<p.x){//多边形单链表相邻结点的x坐标要由小到大}r=p;//指向尾结点}//****定*义直线类}//**********义多边形的填补类*******////扫描行办理用数据//鼠标最先点击//双击标记//鼠标最先点击//双击标记//单击标记//画图地区//多边形的画图数据}//成员变量初始化}}}//变换第i个向量//把多边形极点数据生成边结点for(inti=0;i<numEdge;i++)//每个边的单链表头结点/*四个极值用于确立显示图像的大小和范围*/intLARGE=0x0ffffffff;for(inti=0;i<numEdge;i++){//对每个边结点数组赋值intix1=m.getX(l.x1);//将用户坐标的点变换到JavaAWT坐标if(iy1>iy2){//边的斜向if(iy2<ymin){//进行yMinyMax计算}if(iy1>ymax){}}elseif(iy1<iy2){//边的斜向计算if(iy1<ymin){//进行yMinyMax计算}if(iy2>ymax){}}if(iy1<ymin){//进行yMinyMax计算}if(iy1>ymax){}}计算if(ix1<ix2){//进行xMinxMax计算if(ix1<xmin){}if(ix2>xmax){}}if(ix2<xmin){}if(ix1>xmax){}}if(ix1<xmin){}if(ix1>xmax){}}/*内存图像的数组空间及有关数据*/if(bucket[yt]==null){//该行未成立链表}}//多边形的扫描变换if(bucket[y]!=null){//该指针元素存在}}//多边形的扫描变换//办理给定行的边链表intxleft,xright;xleft=(int)xl;if(xleft<=xright)if(left.boty>=y-1&&right.boty>=y-1){if(xleft<=xright)}if(left.boty>=y-1)//将if(right==null)//边链表的结点数必定为偶数}//办理给定行的边链表//成立指定行的边链表}//填补何种图案}//设定像素颜色publicvoidputPixel(inti,intj){intr,g,b;}/*图像的i行j列处的颜色*/}//填补指定行的像素列publicvoidfillScanline(intxleft,intxright,inty){}//------多边形填补总控程序----}//响应鼠标击键事件if(isPolygonMode){//正在进行多边形填补if(e.getClickCount()>=2){//双击,增添多边形的极点/*给光栅向量表增添一行,这个向量成员方法致使编译要加上参数-Xlint,会出现警示错误*/}}if(isFirstClicked){//首次点击}/*ixiy所对应的用户坐标系下的坐标*//*给光栅向量表增添一行*/}}}//响应鼠标击键事件//响应鼠标挪动事件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论