Bresenham&ŧ039;s线算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bresenham&ŧ039;s线算法相关的知识,希望对你有一定的参考价值。

  1. def bresenham_line((x,y),(x2,y2)):
  2. """Brensenham line algorithm"""
  3. steep = 0
  4. coords = []
  5. dx = abs(x2 - x)
  6. if (x2 - x) > 0: sx = 1
  7. else: sx = -1
  8. dy = abs(y2 - y)
  9. if (y2 - y) > 0: sy = 1
  10. else: sy = -1
  11. if dy > dx:
  12. steep = 1
  13. x,y = y,x
  14. dx,dy = dy,dx
  15. sx,sy = sy,sx
  16. d = (2 * dy) - dx
  17. for i in range(0,dx):
  18. if steep: coords.append((y,x))
  19. else: coords.append((x,y))
  20. while d >= 0:
  21. y = y + sy
  22. d = d - (2 * dx)
  23. x = x + sx
  24. d = d + (2 * dy)
  25. coords.append((x2,y2))
  26. return coords

以上是关于Bresenham&ŧ039;s线算法的主要内容,如果未能解决你的问题,请参考以下文章

Clojure中的Dijkstra&ŧ039;s算法

枚举SSID&ŧ039;s

使用TextMate&ŧ039;s tmŧdialog命令显示警报框

使用两个表的并集获取Count&ŧ039;s

启动时加载部分CUI&ŧ039;s

使用loadClip加载图像/Swf&ŧ039;s