首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bresenham线算法(厚度)

Bresenham线算法(厚度)
EN

Stack Overflow用户
提问于 2009-09-15 15:23:12
回答 3查看 9.9K关注 0票数 4

我想知道是否有人知道根据Bresenham的直线算法或任何类似的算法绘制一条特定厚度的直线。

再想一想,我一直在想,对于每一个setPixel(x,y),我只需画一个圆圈,例如:

filledCircle(x,y,厚度);对于每一个x,y,那当然是非常慢的。我也试着用字典,但那很快就会填满记忆。检查我将要画的像素是否有相同的颜色,但对于大画笔也不够有效。

也许我可以根据角度画半圆?

如有任何意见,将不胜感激。

谢谢。

复制: 如何使用Bresenham创建任意厚度的线条?

EN

回答 3

Stack Overflow用户

发布于 2009-09-15 15:30:20

你实际上不能沿着这条线画圆圈。这种方法是专利。)你仍然可以读到关于灵感的专利。

票数 6
EN

Stack Overflow用户

发布于 2009-09-15 15:44:18

我不知道什么是常用的,但在我看来,你可以用Bresenham作为1像素宽的线条,但可以将它垂直或水平地扩展成一定数量的像素。例如,假设你的线离水平大约30度,你想要它有四个像素宽。计算这条线的垂直厚度应该是五个像素。运行Bresenham,但是对于每个像素(x,y),实际绘制(x,y),(x,y+1),.(x,y+4)。如果你想要线的末端是圆形的,画一个圆在每一端。

对于过度杀戮,请绘制手写笔的像素映射(圆圈或对角线或其他任何东西),然后绘制一组平行的Bresenham线,为手写笔中的每个像素绘制一条。

票数 3
EN

Stack Overflow用户

发布于 2009-09-15 15:53:17

Bresenham上有计算像素覆盖率的变化,比如反晶粒几何库中使用的像素覆盖;不管你是否想要高质量的东西--你不会说输出介质是什么,而且大多数系统都比开断液晶显示器更能支持有厚度的钢笔。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1427849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档