| ²é¿´: 312 | »Ø¸´: 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 ] |
» ²ÂÄãϲ»¶
²ÄÁϹ¤³Ì085601£¬270Çóµ÷¼Á
ÒѾÓÐ42È˻ظ´
279Çóµ÷¼Á
ÒѾÓÐ11È˻ظ´
271Çóµ÷¼Á
ÒѾÓÐ24È˻ظ´
297¹¤¿Æµ÷¼Á?
ÒѾÓÐ6È˻ظ´
²ÄÁϹ¤³Ì281»¹Óе÷¼Á»ú»áÂð
ÒѾÓÐ35È˻ظ´
0856ר˶Çóµ÷¼Á Ï£ÍûÊÇaÇøÔºÐ£
ÒѾÓÐ27È˻ظ´
¿¼Ñе÷¼Á
ÒѾÓÐ10È˻ظ´
ÇóÖúµ÷¼Á£¬¿çµ÷
ÒѾÓÐ14È˻ظ´
085600²ÄÁÏÓ뻯¹¤£¬Çóµ÷¼Á
ÒѾÓÐ14È˻ظ´
Çóµ÷¼Á
ÒѾÓÐ12È˻ظ´














»Ø¸´´ËÂ¥
20