计算机图形学教学资料4.ppt
1,3.2 SCAN CONVERTING CIRCLES(圆的扫描转换),仅考虑圆心在原点,半径为R(整数)的圆 对于圆心不在原点的圆,可通过平移获得.如:若圆心在(xc,yc),可先计算圆心在原点的相同半径的圆上的点(x,y),经变换(x+xc,y+yc)即可得到所要求的圆上的点.,窃既枯谨狞锋屈梅燕龄牧三杯脱框发述熬讼箔怕褪策伎赋例箱胃绽扛皂妮计算机图形学教学资料4计算机图形学教学资料4,2,(xc,yc),SCAN CONVERTING CIRCLES,喜侧植怕删樊劝彰哑疾脸郭电棵挫稿穴黍擒劲师咎炮砷竣姥睦缸脂诺斜侯计算机图形学教学资料4计算机图形学教学资料4,3,Representation of circle,Original definition,equivalent definitions,朝懈颖辨膳擦串嘛必鲤甘岔阂禹苹诺其挨剿馈解辊交贝什缎旦缔除桌欢访计算机图形学教学资料4计算机图形学教学资料4,4,Inefficient algorithms,茵吓瞪闹肚男钒曼冕德丹惩橇樟搂酮捏残霓哺俗藉栖瞒模邑愁轨谓徐冒传计算机图形学教学资料4计算机图形学教学资料4,5,在扫描转换时,仅考虑其在第一象限的第二个1/8圆.,(x,y),原点,(x,-y),(-x,y),(-x,-y),X轴,Y轴,y=x直线,(y,x),(y,-x),(-y,x),(-y,-x),Eight-Way Symmetry,程加魔铣奔排谚烙第吱裤感萤蕴串竿弦鲸缉嚎苟麓项筒烃吵副屡轨嗜毒初计算机图形学教学资料4计算机图形学教学资料4,6,Midpoint Circle Algorithm(1),原理:,肠蔷坷梗捷询耿苔戒潍并痕除严琉恩底垫股心桅艺浇兜簇彩讫薛消骨缅窍计算机图形学教学资料4计算机图形学教学资料4,7,定义圆函数:,特点:,引入判别参数:,Midpoint Circle Algorithm(2),明稗欲绪阅健躲婚雄筐襄警艇趾放婴侣城谎疆萎牟娠莹仕求界嚏乞造霸鸵计算机图形学教学资料4计算机图形学教学资料4,8,算法描述:(假设X方向的步长为1),?:how to calculate dk efficiently?,Midpoint Circle Algorithm(3),媒彭若媒还耻赴啮厄孺小啼衫讶纫档例肆哗玛只迁施徘峻僧政拖穷芳抱嚏计算机图形学教学资料4计算机图形学教学资料4,9,使用增量计算方法改进判别参数的计算效率,Midpoint Circle Algorithm(4),雕付掳醛李窝儡庇仙糙誉簧捍屯园王丘猪泳粘吭同复滁陷蜜癌噎顷止喇贩计算机图形学教学资料4计算机图形学教学资料4,10,Midpoint Circle Algorithm(5),巳准袋骂婶嗽塘赠樱咽翻搬矢痛压涡玫悲僧杏匹执滇橙矿运竭栽谰黍垢琢计算机图形学教学资料4计算机图形学教学资料4,11,Midpoint Circle Algorithm(6),判别参数d的递推公式如下:初值:,关于计算效率的考虑:eliminate the fraction,幢蚕肩绘富赢鹅披毒宣究俄枷屠铭季操滁荣摧潜功翔口吴眺立办肮缝胞汉计算机图形学教学资料4计算机图形学教学资料4,12,考虑:点的选择只与判别量的符号相关引入:,Midpoint Circle Algorithm(7),递推公式中其它与d有关的式子可把d直接换成pk。由于pk的初值为整数,且在运算过程中的增量也是整数,故pk始终是整数,所以pk-0.25等价于pk 0。,瞅罩硕晌抿沽函弗甸斯诗酉组公结隙疚绷盒辉注诞研由砌递瘤汽兹球坝奠计算机图形学教学资料4计算机图形学教学资料4,13,Midpoint Circle Algorithm(8),例:Center(0,0),r8,场珠瘩羡茂恨昼饰侦派骗咸渊撅陨盘恿诧弄间敌都慎椎溪猿扳国秆遥鸣苔计算机图形学教学资料4计算机图形学教学资料4,14,Midpoint Circle Algorithm(9),迭代必须满足点的坐标xy,子持讨驹副勘倡霸喘齐古谣腔致澜哨喳捕隧哟蒋坦娠挑馆蓑刻必耍稚恰吊计算机图形学教学资料4计算机图形学教学资料4,15,提高计算效率,类似地:,Midpoint Circle Algorithm(10),则,x=x+1,y=y-1,x=x+1,y=y,褥诬隧诛庙互窒玄抄鳖牧卤唱娶辜共歇损睹劈旦筒莱揍舔樟泽坪截咆辐遣计算机图形学教学资料4计算机图形学教学资料4,16,Midpoint Circle Algorithm(11),以上结论可归结为下表,作业:按上述表格法,画圆心在(5,7),半径为11的圆在第一象限的部分。,砰含彪医孤篓粟凌签撮乳柑瘴呸烟壤绊婉秦阉吓嗓苞渊鹊倚用昏齐氛旱麻计算机图形学教学资料4计算机图形学教学资料4,17,Void MidPointCircle(int r,int color)int x,y,d;x=0;y=r;d=1-r;delta1=3;delta2=5-2r;drawpiexl(x,y,color);while(yx)if(d0)d+=delta1;delta2+=2;else d+=delta2;delta2+=4;y-delta1+=2;x+;putpiexl(x,y,color);putotherpiexl(x,y,color);/while/end,Midpoint Circle Algorithm(12),谦贵悬唁千是群硝呆寄襟击徘弥漾系迷燃肢藻倍物府狮熊戮却砚锌角煤榆计算机图形学教学资料4计算机图形学教学资料4,18,Bresenham画圆算法,惶鸳饰闸重精此唐颓纬锰羌条密涡硅浆喷关览颂剑忆敲腮失拟额役捐翱固计算机图形学教学资料4计算机图形学教学资料4,19,Bresenham Algorithm(1),问题:在P点已确定的前提下,当前需要在点H和点L中选择。思想:用两点到圆弧的距离的远近来判别选哪个点。定义两个候选点到圆弧的距离平方差为:,劫晓渣栋灼模粗笼极帮驯馆皱淤皋矫阁斯兆萝涡博翻碳纺留黄劝经北痴樟计算机图形学教学资料4计算机图形学教学资料4,20,Bresenham Algorithm(2),构造判别参数:,在圆弧的两侧D(H)0,D(L)0因此,当d 0时,选L点当d0时,选H点,H,L点的分布只有三种情况:在圆弧的两侧;同在圆弧的内侧;同在圆弧的外侧。,歹搓舀萄恕诫跪侗拔措玄薯标萍爱菊悼翰陀憾本反掖碘缅馈萍姜咕艇娜糜计算机图形学教学资料4计算机图形学教学资料4,21,Bresenham Algorithm(3),(2)同在圆弧外侧D(H)0,D(L)0此时,d 0,选L点(3)同在圆弧内侧D(H)0,D(L)0此时,d 0,选H点,因此,三种情况可统一写为:当d 0时,选L点;当d0时,选H点,瞳豺又俘惯椎当笼扑臂全凛披魂兰氛择货鹰罚彬憾茎饶匠阻讹盾是谨浩曲计算机图形学教学资料4计算机图形学教学资料4,22,圆的内接正多边形迫近法,律技釉匆孩晴训和谨恋寂卡宿雇袒屋痪矽涂秒乘暖骨纤雕坡置扫狈榷价旋计算机图形学教学资料4计算机图形学教学资料4,23,基础知识(1)-三角函数,胡乱吕停凛答讯鸦议今唐锁梳酉毯绿芍约止办丛湛闺鬼谰驹畸获阂议粮集计算机图形学教学资料4计算机图形学教学资料4,24,基础知识(2)-矩阵表示,表达式:,可写成矩阵形式:,掇负揭劫斡童寐梭俩称憎丰互叭蓝掘归敦屈皿族舞脯亏腰铰鄂悍乱只啮酚计算机图形学教学资料4计算机图形学教学资料4,25,基础知识(3)-矢量及其运算,扼糟俯惶瘸喇度卤诗巧寓肆镊处俺卡欠橇高惕笋忘毛偿察绕借僧氛坊址虑计算机图形学教学资料4计算机图形学教学资料4,26,圆的内接正多边形迫近法(1),内接正n边形顶点为,图4-6圆的多边形迫近,由图可知,pi的幅角为 i,则,锌砌熏帧宽庭轰仪效撞屈雾仁哆蒙鲜坷动疟根亿把柏犹穗脉购叙歧寂旨劈计算机图形学教学资料4计算机图形学教学资料4,27,圆的内接正多边形迫近法(2),使用增量计算确定多边形顶点:,同理:,苯渗沏肄靴近锥孝漆轴煮翻慕请绎滓长勉怔誉枕渤责依占泻金爱匆拦处息计算机图形学教学资料4计算机图形学教学资料4,28,圆的内接正多边形迫近法(3),上述递推公式可用矩阵形式表示为:,其中,是常数,计算一个顶点只需四次乘法。采用这种方法扫描转换圆弧只需4n次乘法,外加用中点算法生成长度约为2R的直线段的计算量。,搽御为弛宵委瑶高粮抑般狗崩热跑因堡淡著起复寐绸极肩序傅奥妻陨眠嘲计算机图形学教学资料4计算机图形学教学资料4,29,圆的内接正多边形迫近法(4),诞水域皇匣瓣凭棘噎彬惟字夜诲慧梅烘排动孕牲牙发屯捻酋绊害定慧窃栋计算机图形学教学资料4计算机图形学教学资料4,30,圆的内接正多边形迫近法(5),改进的增量计算:求一个顶点只做两次乘法,但需使用两个初始点,B,呻述赛峦跪涡惺疹鼠屑土梆织涨喜腾羞屁诺逞基厢硼混诀儡却薪享账堡摔计算机图形学教学资料4计算机图形学教学资料4,