【问题标题】:Algorithm for drawing line with thickness / width用粗细/宽度画线的算法
【发布时间】:2013-11-16 18:30:15
【问题描述】:

我正在寻找一种快速算法来绘制具有一定厚度的线条。线条不必抗锯齿,速度是优先考虑的。像这样相当简单的事情就足够了:

用例是一个 Javascript 游戏,其中蠕虫会留下踪迹。 (HTML5 Canvas 明显画线,但 getImageData() 很慢,碰撞检测也很慢)

在过去的 2.5 小时内,我找不到任何可以做到这一点的东西。是的,我知道关于 SO 的问题几乎相同,实际上其中有很多,但没有一个问题有可行的解决方案。我目前唯一的解决方案是沿着 Bresenham 线画圈,效率不高。

一些代码(伪代码、JS 或至少是文章的链接)会很棒。

【问题讨论】:

  • 在您自己没有这样做的情况下坚持获得代码似乎有点富有......
  • 线条绘制通常使用 Bresenham 算法完成:en.wikipedia.org/wiki/Bresenham%27s_line_algorithm。用这种方法画粗线也应该是相当直接的。
  • 我认为帆布是要走的路。您可以使用 DOM 元素并旋转它们,但这会很差,尤其是在性能方面。碰撞检测可以用 Canvas 和 JS-objects 完成,性能非常好。你想用getImageData()做什么?
  • 我没有包含任何代码,因为我只使用 Bresenham 的算法 - 在这里找到 stackoverflow.com/a/4672319/388994 问题是 - 它没有画粗线。至少我找不到任何正确的方法。
  • @81403 只是绘制更大的正方形(矩形)而不是单个像素。

标签: javascript algorithm graphics drawing line


【解决方案1】:

http://members.chello.at/~easyfilter/bresenham.html

检查底部。这是一条抗锯齿线,但应该很容易修改为非抗锯齿。

【讨论】:

  • 链接已损坏。我在哪里可以找到它或者您搜索了什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多