求宽图元算法,急用!!!

dongpy 2005-03-21 02:08:25
求教用宽画笔画圆的算法,有示例代码最好。

宽度为1的画圆代码有了,怎么做宽度大于1的?
试过画同心圆的方法,没成功。

麻烦大家提供些代码或思路。
...全文
128 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongpy 2005-03-25
  • 打赏
  • 举报
回复
Up一下,用宽画笔画折线有没有好的算法,提供思路的朋友,另外开帖给分!!!
dongpy 2005-03-24
  • 打赏
  • 举报
回复
问题还没解决,Up一下!
dongpy 2005-03-24
  • 打赏
  • 举报
回复
谢谢zzwu(未名),思路讲的很清楚了。

还有,用宽画笔画折线、多边形有没有算法?我找了好久都没找到!

我先是想画了宽的线段,然后拼起来,但是在转折点有问题!因为折线拐角不一定是90度。

这个问题也是困扰了好几天了。
zzwu 2005-03-24
  • 打赏
  • 举报
回复
对啊! 需要把2个圆的圆周坐标值全保存下来。然后分2种情况来用水平线填充:

上、下部分:从外圆左半边上的点出发,画水平线到外圆右半边上的点;

中间部分:从外圆左半边上的点出发,画水平线到内圆左边,再从内圆右半边点出发,画水平线到外圆右边。

设圆心为(Xo,Yo),大圆小圆半径分别为R,r,则
上面部分是指:y坐标从Yo-R到Yo-r的一段,
中间部分是指:y坐标从Yo-r到Yo+r的一段,
下面部分是指:y坐标从Yo+r到Yo+R的一段,
dongpy 2005-03-22
  • 打赏
  • 举报
回复
谢谢! 我就是想知道填充的方法,因为我填充失败了。
dongpy 2005-03-22
  • 打赏
  • 举报
回复
我是用Bresenham算法画圆的,一次只能画一个,那用扫描线填充是不是要把圆周坐标值保存下来呢?
zzwu 2005-03-22
  • 打赏
  • 举报
回复
填充失败的状况如何? 填充到圆环之外去了吗?
zzwu 2005-03-22
  • 打赏
  • 举报
回复
用扫描线填充或种子填充。

不知道你的圆是怎样生成的?

如果是画圆函数直接画出的,则用种子填充。

如果生成圆用了Bresenham算法,那么圆周上的每一点都知道,可以扫描线填充。



zzwu 2005-03-21
  • 打赏
  • 举报
回复
画2个同心圆,中间填充就行了。

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧