我需要一份快速绘制圆角矩形的代码,不用API那种,最好是C代码,大家帮帮忙.

everkImage 2011-01-03 08:35:23
^^
...全文
286 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2011-01-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 everkimage 的回复:]
VC里,最直接的有RoundRect()现成函数,我的意思可理解为用SetPixel()函数实现之。^^
没有代码,理论文章也可以。
在网上找了半天,没什么结果.
[/Quote]
不用RoundRect()也不一定用SetPixel()
可以用MoveTo、LineTo画直线
用Arc画弧来连接圆角
sunlin7 2011-01-03
  • 打赏
  • 举报
回复
从思路上讲很简单的。但实际编写的时候要处理不同角度的情况,因此其解析式就会比较复杂了。另外,在计算机图形学里面,即使是画最简单的直线,其改进算法都有多篇论文进行论述(比如直线的中点算法,Bresenham算法,DDA算法等等),同样,圆的算法也有多篇论文进行讨论。

所以楼主如果确实需要完全自己手工绘制而不使用已有的库的话,至少要找到一个比较快的直线算法,一个比较快的圆的算法,然后自己写出任意角度圆角矩形的解析式,再手工将其基本曲线画出。
everkImage 2011-01-03
  • 打赏
  • 举报
回复
VC里,最直接的有RoundRect()现成函数,我的意思可理解为用SetPixel()函数实现之。^^
没有代码,理论文章也可以。
在网上找了半天,没什么结果.
sd6814466 2011-01-03
  • 打赏
  • 举报
回复
嗯,不用API的话,代码量恐怕不是一个等级了吧。。。
估计楼主的问题描述的确没清楚
向立天 2011-01-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 woncomp 的回复:]
楼上的你是孔乙己么?

楼主想要算法实现的话可以去古月的官方网站找一下,也许能找到比较详细的介绍。
[/Quote]
呵呵
我没有孔乙己博学
我只是想提醒楼主注意明确基础概念
如果只是不想用Rgn相关的GDI函数还是要区分用SetPixel类的API还是用MoveTo、LineTo类的API
要想得到好的答案把问题描述清楚应该是基本前提吧
wuhuwy 2011-01-03
  • 打赏
  • 举报
回复
楼主是说不用直接调用的api吧。建议看下计算机图形学,研究一下相关的算法,其实也就是四条线和四个弧的问题
woncomp 2011-01-03
  • 打赏
  • 举报
回复
楼上的你是孔乙己么?

楼主想要算法实现的话可以去古月的官方网站找一下,也许能找到比较详细的介绍。
向立天 2011-01-03
  • 打赏
  • 举报
回复
对呀
不用API这么弄
用汇编?
zjfhgdx 2011-01-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 icessl 的回复:]
楼主是不是只用 SetPixel(x,y) 画? 比较麻烦,算法比较复杂,核心部分是画线和画圆.《计算机图形学》里有它们的算法,太长了,不好贴,楼主自己查一下吧。
[/Quote]
setpixel也是api
zjfhgdx 2011-01-03
  • 打赏
  • 举报
回复
不用API?楼主开玩笑的吧,难道想直接控制显卡?
那你每个硬件都要写不同的代码了。
icessl 2011-01-03
  • 打赏
  • 举报
回复
楼主是不是只用 SetPixel(x,y) 画? 比较麻烦,算法比较复杂,核心部分是画线和画圆.《计算机图形学》里有它们的算法,太长了,不好贴,楼主自己查一下吧。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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