| ²é¿´: 308 | »Ø¸´: 0 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
sdlj8051½ð³æ (ÖøÃûдÊÖ)
|
[½»Á÷]
Bresenham¸ßЧ»ÏßËã·¨
|
||
|
Bresenham¸ßЧ»ÏßËã·¨ »ÏßµÄËã·¨²»ÉÙ£¬µ«Òª×÷µ½¸ßËÙ¡¢¼òµ¥²¢²»ÈÝÒס£Ð±ÂÊÏà³Ë·¨ÊÇ×î¼òµ¥µÄ·½·¨Ö®Ò»£¬µ«¼ÆËãÿ¸öµã¾ùÒª»¨·Ñ²»ÉÙʱ¼äÓÃÓڳˡ¢³ý·¨ÔËË㣻ÏÂÃæ½éÉܵÄÊÇBresenham's¸ßЧ»ÏßËã·¨£¬¶Ôÿ¸öµãµÄ×ø±ê¼ÆËãÖ»Òª¼Ó¡¢¼õ·¨¾ÍÄÜÍê³É¡£ ¼ò»¯Ëã·¨ÓÃαPascalÓïÑÔÃèÊöÈçÏ£º procedure DrawLine(x1, y1, x2, y2: Integer); var x, y, DeltaX, DeltaY, HalfX, ErrorTerm, i: Integer; begin DeltaX := x2 - x1; DeltaY := y2 - y1; HalfX := (x2 - x1) shr 1; ErrorTerm := 0; x := x1; y := y1; for i:=0 to DeltaX do begin Plot(X, Y); Inc(x); ErrorTerm := ErrorTerm + DeltaY; if ErrorTerm>HalfX then begin ErrorTerm := ErrorTerm - DeltaX; Inc(y); end; end; end; Ϊ·½±ãÔĶÁ£¬ÉÏÊö³ÌÐò×÷Á˼ò»¯¡£Êµ¼Ê³ÌÐòÓ¦ÂÔ×÷ÐÞÕý£¬ÒÔ·Ö±ð´¦ÀíDeltaXÓëDeltaY±È½Ï´óС, ±ØÒªÊ±½»»»Æðʼ¡¢½áÊøµãµÈ¡£ ÐÞÕýºóµÄµÄαPascalËã·¨ÈçÏ£º procedure DrawLine(x1, y1, x2, y2: Integer); var x, y, DeltaX, DeltaY, HalfCount, ErrorTerm, i, Flag: Integer; begin DeltaX := x2 - x1; DeltaY := y2 - y1; if Abs(DeltaY) if DeltaX<0 then begin i := x1; x1 := x2; x2 := i; i := y1; y1 := y2; y2 := i; DeltaX := x2 - x1; DeltaY := y2 - y1; end; if DeltaY<0 then Flag := -1 else Flag := 1; DeltaY := Abs(DeltaY); HalfCount := DeltaX shr 1; ErrorTerm := 0; x := x1; y := y1; for i:=0 to DeltaX do begin Plot(X, Y); Inc(x); ErrorTerm := ErrorTerm + DeltaY; if ErrorTerm>HalfCount then begin ErrorTerm := ErrorTerm - DeltaX; y := y + Flag; end; end; end else begin if DeltaY<0 then begin i := x1; x1 := x2; x2 := i; i := y1; y1 := y2; y2 := i; DeltaX := x2 - x1; DeltaY := y2 - y1; end; if DeltaX<0 then Flag := -1 else Flag := 1; DeltaX := Abs(DeltaX); HalfCount := DeltaY shr 1; ErrorTerm := 0; x := x1; y := y1; for i:=0 to DeltaY do begin Plot(X, Y); Inc(y); ErrorTerm := ErrorTerm + DeltaX; if ErrorTerm>HalfCount then begin ErrorTerm := ErrorTerm - DeltaY; x := x + Flag; end; end; end; end; [ Last edited by »ÃÓ°ÎÞºÛ on 2006-11-16 at 07:30 ] |
» ²ÂÄãϲ»¶
08¹¤Ñ§µ÷¼Á
ÒѾÓÐ16È˻ظ´
0703»¯Ñ§µ÷¼Á£¬Çóµ¼Ê¦ÊÕ
ÒѾÓÐ7È˻ظ´
0854AI CV·½ÏòÕÐÊÕµ÷¼Á
ÒѾÓÐ3È˻ظ´
Çóµ÷¼Á323²ÄÁÏÓ뻯¹¤
ÒѾÓÐ3È˻ظ´
ÉúÎïѧѧ˶Çóµ÷¼Á
ÒѾÓÐ9È˻ظ´
289Çóµ÷¼Á
ÒѾÓÐ8È˻ظ´
07»¯Ñ§280·ÖÇóµ÷¼Á
ÒѾÓÐ5È˻ظ´
300·Ö£¬²ÄÁÏ£¬Çóµ÷¼Á£¬Ó¢Ò»Êý¶þ
ÒѾÓÐ4È˻ظ´
¡¾¿¼Ñе÷¼Á¡¿»¯Ñ§×¨Òµ 281·Ö£¬Ò»Ö¾Ô¸ËÄ´¨´óѧ£¬³ÏÐÄÇóµ÷¼Á
ÒѾÓÐ16È˻ظ´
0854µç×ÓÐÅÏ¢Çóµ÷¼Á
ÒѾÓÐ7È˻ظ´













»Ø¸´´ËÂ¥