GDI怎么方便地绘制定制的直线???

fleer 2010-08-31 01:47:57
怎么绘制在宽度方向具有不同颜色的直线呢?最好不要用LineDDA方法自己去一个点一个点的话。
就是比如说一条直线宽为3个像素,让外边两个像素显示为红色,中间的像素显示为绿色,这样的直线怎么话?
...全文
99 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fleer 2010-09-03
  • 打赏
  • 举报
回复
结贴了,为了照顾速度,直接给位图上数据赋值的
j8daxue 2010-09-01
  • 打赏
  • 举报
回复
Path加2段弧2条线。closeconfig...
对path,使用渐变画刷从上倒下设置混色因子填充即可
不过用GDI+渐变未必比GDI快。
pxy_hao 2010-09-01
  • 打赏
  • 举报
回复
不错,类似渐变填充,就像有的软件用二维来模拟三维管道一样
fleer 2010-09-01
  • 打赏
  • 举报
回复
fandh说得对,类似渐变填充,就像有的软件用二维来模拟三维管道一样
fandh 2010-08-31
  • 打赏
  • 举报
回复
怀疑你想实现的是GDI+渐变方式填充!
fandh 2010-08-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fleer 的回复:]
如果是画宽度为10的直线,那也想线条的最外侧一层像素是红色,然后往里一层是紫色,再往里一层又是其他颜色。画出来的线两端是圆的。

用LaoWu_的方法画10此,但是要保证两端是圆的,就要自己算端点的啊。
用fandh的方法5次,直接moveto,LineTo就可以让它两端是圆冒状的。

但是在线条比较多的时候,好像这两个方法都会影响速度来着。。。。
[/Quote]
影响速度是没有办法的事,你一条线包含几种颜色,首先微软的GDI与GDI+我就不知道能有这样的函数支持!对于微软的GDI资源,设备DC画的时候,每次只能选一种颜色!GDI+有渐变,不知道你说的是不是GDI+的渐变!
fleer 2010-08-31
  • 打赏
  • 举报
回复
如果是画宽度为10的直线,那也想线条的最外侧一层像素是红色,然后往里一层是紫色,再往里一层又是其他颜色。画出来的线两端是圆的。

用LaoWu_的方法画10此,但是要保证两端是圆的,就要自己算端点的啊。
用fandh的方法5次,直接moveto,LineTo就可以让它两端是圆冒状的。

但是在线条比较多的时候,好像这两个方法都会影响速度来着。。。。
fandh 2010-08-31
  • 打赏
  • 举报
回复
如果是宽度为10的,那么,你画出来的结果应该是如何?
fleer 2010-08-31
  • 打赏
  • 举报
回复
楼上的两位大哥说的方法,都可能影响速度来着,因为可能要画很多线。另外就是,要自己处理线的两个端点,比如线宽为10了,那么分别画几次的话,每次的端点可能不一样的。
fandh 2010-08-31
  • 打赏
  • 举报
回复
画两次,先画宽度为3的红色!然后,再画宽度为1的绿色!
_JeffreyWu 2010-08-31
  • 打赏
  • 举报
回复
画三道不行吗?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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