ͼ2.5.4 Bresenham»ÏßËã·¨µ±1>k>0ʱÔËÐнá¹û½ØÍ¼
ͼ2.5.5 Bresenham»ÏßËã·¨µ±k<-1ʱÔËÐнá¹û½ØÍ¼
ͼ2.5.6 Bresenham»ÏßËã·¨µ±k<-1ʱÔËÐнá¹û½ØÍ¼
- 20 -
ͼ2.5.7 Bresenham»ÏßËã·¨µ±-1 ͼ2.5.8 Bresenham»ÏßËã·¨µ±-1 Bresenham»Ô²: ͼ2.5.9 Bresenham»Ô²Ëã·¨ÔËÐнá¹û½ØÍ¼ - 21 - ͼ2.5.10 Bresenham»Ô²Ëã·¨ÔËÐнá¹û½ØÍ¼ ?ʵÑéÌâÈý 3.1ʵÑéÌâÄ¿ ×ÔѧÍÖÔ²µÄBresenhamÉú³ÉËã·¨£¬ÀûÓöԳÆÐÔ½«¸ÃËã·¨³ÌÐòÍÆ¹ãµ½ÈÎÒ»ËÄ·ÖÔ²£¬´Ó¶øÐγÉÒ»°ãµÄBresenham»ÍÖÔ²Ëã·¨¡£²¢ÉÏ»ú±à³Ì»³öÒ»¸öÔ²ÐÄÔÚµã(xc, yc)£»ÑØxÖá·½ÏòµÄ³¤°ëÖ᳤¶ÈΪa, ÑØyÖá·½ÏòµÄ¶Ì°ëÖ᳤¶ÈΪb£» Ô²ÖÜÑÕɫΪcolorµÄÍÖÔ²¡£ÒªÇó£º(1)ÍÖÔ²ÐĵÄ×ø±ê¡¢³¤°ëÖ᳤¶ÈΪa¡¢¶Ì°ëÖ᳤¶ÈΪbºÍÔ²ÖÜÑÕÉ«color¶¼ÒªÇó¿ÉÒÔËæ»úÊäÈ룻(2)ÒªÇóÀûÓÃÎı¾Êä³öº¯ÊýÏÔʾ³öËù»ÍÖÔ²µÄÔ²ÐÄ¡£ 3.2ʵÑéÄ¿µÄºÍÒâÒå 1. ×ÔѧÍÖÔ²µÄBresenhamÉú³ÉËã·¨ 2. ÀûÓöԳÆÐÔ½«¸ÃËã·¨³ÌÐòÍÆ¹ãµ½ÈÎÒ»ËÄ·ÖÔ²£¬±àдһ°ãµÄBresenham»ÍÖÔ²Ëã·¨ 3.ÊìϤ²¢ÕÆÎÕÍÖÔ²»¡µÄ»·¨£¬²¢ÍØÕ¹µ½Õû¸ö8·ÖÍÖÔ²¡£ 3.3³ÌÐòÖÆ×÷²½Öè(°üÀ¨Ë㷨˼Ïë¡¢Ëã·¨Á÷³ÌͼµÈ) 1. ÊäÈëÍÖÔ²µÄ³¤°ëÖáaºÍ¶Ì°ëÖáb¡£ 2. ¼ÆËã³õʼֵd?b2?a2?(-b?0.25)£¬x?0,y?b¡£ 3. »æÖƵã(x,y)¼°ÆäÔÚËÄ·ÖÏóÏÞÉϵÄÁíÍâ3¸ö¶Ô³Æµã¡£ 4. ÅжÏdµÄ·ûºÅ¡£Èôd?0£¬ÔòÏȽ«d¸üÐÂΪd?b2?(2x?3)£¬ÔÙ½« (x,y)¸üÐÂΪ (x?1,y)£»·ñÔòÏȽ«d¸üÐÂΪd?b2?(2x?3)?a2?(?2y?2)£¬ÔÙ½«(x,y)¸üÐÂΪ - 22 - (x?1,y-1)¡£ 5. µ±b2?(x?1)?a2?(y?0.5)ʱ£¬Öظ´²½Öè(3)ºÍ(4)£¬·ñÔòתµ½²½Öè(6)¡£ 6. ÓÃÉϰ벿·Ö¼ÆËãµÄ×îºóµã(x,y)À´¼ÆËãϰ벿·ÖÖÐdµÄ³õÖµ: d?b2?(x?0.5)2?a2?(y?1)2?a2?b2 7. »æÖƵã(x,y)¼°ÆäÔÚËÄ·ÖÏóÏÞÉϵÄÁíÍâ3¸ö¶Ô³Æµã¡£ 8. ÅжÏdµÄ·ûºÅ¡£Èôd?0£¬ÔòÏȽ«d¸üÐÂΪd?b2?(2xi?2)?a2?(?2yi?3), ÔÙ½« (x,y)¸üÐÂΪ(x?1,y-1)£»·ñÔòÏȽ«d¸üÐÂΪd?a2?(?2yi?3)£¬ÔÙ½«(x,y)¸üÐÂΪ (x,y-1)¡£ 9. µ±y?0£¬ ÖØ¸´²½Öè(7)ºÍ(8)£¬·ñÔò½áÊø¡£ 3.4Ö÷³ÌÐò #include \#include \#include \ void Bresenham_Ciecle(int a,int b,int p,int q,int c) { putpixel(p,q,c); int x=0; int y=b; double dt=b*b+a*a*(-b+0.25); putpixel(x+p,y+q,c); while( b*b*(x+1) < a*a*(y-0.5)) { if(dt<0) { } - 23 - dt+=b*b*(2*x+3);