多边形颜色渐变填充C语言,vb6:用渐变填充多边形
下面的代码将绘制一个渐变填充矩形。我从vbcity.com的这个帖子稍微修改了一下。
将其放入模块中:
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
Private Declare Function FillRect Lib "user32" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Public Sub gdiDrawGradient( _
ByVal hdc As Long, _
ByRef rct As RECT, _
ByVal lEndColor As Long, _
ByVal lStartColor As Long, _
ByVal bVertical As Boolean)
Dim lStep As Long
Dim lPos As Long, lSize As Long
Dim bRGB(1 To 3) As Integer
Dim bRGBStart(1 To 3) As Integer
Dim dR(1 To 3) As Double
Dim dPos As Double, d As Double
Dim hBr As Long
Dim tR As RECT
LSet tR = rct
If bVertical Then
lSize = (tR.Bottom - tR.Top)
Else
lSize = (tR.Right - tR.Left)
End If
lStep = lSize 255
If (lStep < 3) Then
lStep = 3
End If
bRGB(1) = lStartColor And &HFF&
bRGB(2) = (lStartColor And &HFF00&) &H100&
bRGB(3) = (lStartColor And &HFF0000) &H10000
bRGBStart(1) = bRGB(1): bRGBStart(2) = bRGB(2): bRGBStart(3) = bRGB(3)
dR(1) = (lEndColor And &HFF&) - bRGB(1)
dR(2) = ((lEndColor And &HFF00&) &H100&) - bRGB(2)
dR(3) = ((lEndColor And &HFF0000) &H10000) - bRGB(3)
For lPos = lSize To 0 Step -lStep '
' Draw bar
If bVertical Then
tR.Top = tR.Bottom - lStep
Else
tR.Left = tR.Right - lStep
End If
If tR.Top < rct.Top Then
tR.Top = rct.Top
End If
If tR.Left < rct.Left Then
tR.Left = rct.Left
End If
hBr = CreateSolidBrush((bRGB(3) * &H10000 + bRGB(2) * &H100& + bRGB(1)))
FillRect hdc, tR, hBr
DeleteObject hBr
' Adjust colour '
dPos = ((lSize - lPos) / lSize)
If bVertical Then
tR.Bottom = tR.Top
bRGB(1) = bRGBStart(1) + dR(1) * dPos
bRGB(2) = bRGBStart(2) + dR(2) * dPos
bRGB(3) = bRGBStart(3) + dR(3) * dPos
Else
tR.Right = tR.Left
bRGB(1) = bRGBStart(1) + dR(1) * dPos
bRGB(2) = bRGBStart(2) + dR(2) * dPos
bRGB(3) = bRGBStart(3) + dR(3) * dPos
End If
Next lPos
End Sub
要进行测试,请将此代码添加到表单中:
Private Sub Command1_Click()
Dim r As RECT
r.Left = 10
r.Top = 10
r.Right = 100
r.Bottom = 150
Call gdiDrawGradient(Me.hdc, r, vbRed, vbBlue, True)
End Sub
多边形颜色渐变填充C语言,vb6:用渐变填充多边形相关推荐
- 计算机图形学——多边形填色(多边形颜色渐变填充)
1.问题描述与算法思想 问题描述 多边形颜色渐变填充,设计实现多边形的填充类,设置顶点序列,调用填充函数.通过建立多边形的桶表和边表的数据,按照算法步骤依次扫描填充.调用设计实现的多边形填充类,对所绘 ...
- fill颜色填充c语言,R语言给图形填充颜色的操作(polygon函数)
1. 使用polygon进行纯色填充 # polygon函数介绍 polygon(x, y = NULL, density = NULL, angle = 45, border = NULL, col ...
- 多边形扫描转换算法(C语言实现)
多边形扫描转换算法(C语言实现) 原理不赘述 原理可跳转至该文章 ET边表 AET链表 实现 该算法我实在计算机图形学的书上看到了,但是遗憾的是看懂了,并没有算法实现.该算法的优势很是很明显的对于种子 ...
- Woed渐变背景怎么设置?word渐变填充在哪里?
Word渐变背景怎么设置?Word文档大家都知道吧,用的也比较多,它是办公软件家族的一员,它最常用到的地方就是写文章,很多人写文章都是在这个文档上面写的,word渐变填充在哪里? 说到word渐变填充 ...
- 计算机word设置渐变填充,在word2013中设置渐变填充效果的详细设置步骤
软件安装:装机软件必备包 装机软件必备包官方下载 关于电脑装机必须的软件,比如windows office系列办公软件.网页浏览器.杀毒软件.安全防护软件.刻录软件.压缩软件. ...
- R语言ggplot2可视化气泡图:无填充色的气泡图、自定义填充色的气泡图
R语言ggplot2可视化气泡图:无填充色的气泡图.自定义填充色的气泡图 目录 R语言ggpl
- Gradify - 提取图片颜色,创建响应式的 CSS渐变
被请求的HTTP对象之间的延迟会有一个时间段,这个期间网页看起来不完整.Gradify 可以分析出图像中4个最常见的颜色,创建一个梯度(或纯色)作为图片占位符.Gradify 可以在在任何图像发现最突 ...
- cass块参照怎么改颜色_【干货】CASS自定义图斑填充技巧
原标题:[干货]CASS自定义图斑填充技巧 经常有小伙伴向我求助 CASS中如何定义图斑填充的符号? 自定义"水浇地"图斑的填充符号要怎么操作? 完成图斑绘制的图形,想要给各类图斑 ...
- CSS设置背景颜色 拼接 (一半黑一半白) 条纹 渐变
CSS设置背景颜色 拼接 (一半黑一半白) 条纹 渐变 首先下面是用到的css样式 线性渐变 这个属性我还说不明白 我就简单的使用一下 有兴趣的搜索CSS线性渐变就OK background-imag ...
最新文章
- autoware中的交通灯识别(八)
- 机器人建模中移动关节如何建立坐标系_机器人工程师进阶之路(八)指数积(PoE)建立机械臂模型及正运动...
- python中strip函数_让你整明白python strip函数妙用
- Linux权限控制命令
- 集合类-HashSet去重
- 时空快照模型snapshots
- ustc小道消息20211227
- Approximate Nearest Neighbors.接近最近邻搜索
- redis服务器防止入侵,加ip,密码限制
- 云计算的安全顾虑中不透明性影响云落地
- [tldk][dpdk][dev] TLDK--基于dpdk的用户态协议栈传输层组件简单调研
- PS如何导入3dlut调色预设文件步骤方法
- 苹果系统安装服务器打印机,如何在MAC系统下安装打印机驱动
- 未来十年计算机语言,随便聊聊中国未来十年热门的十大编程语言使用趋势
- Python 散点图的数据分析
- java 微信文章评论点赞_微信文章留言评论刷赞怎么弄?如何给微信文章
- 嘿,飞哥(F.R.E.C.O)!不一般的云联盟
- 网站动态背景线条跟随鼠标移动,吸附鼠标效果
- 数据库进阶·如何针对所有用户数据中没有的数据去加入随机的数据-蜻蜓Q系统用户没有头像如何加入头像数据-优雅草科技kir
- NOI银河英雄传说(并查集)
热门文章
- 3种漂亮的登录表单页面css3+html5模板
- 高分一号、二号样例数据下载
- 【MMDetection3D】环境搭建,使用PointPillers训练测试可视化KITTI数据集
- 猿创征文|Hexo+Github搭建完全免费个人博客详细教程
- 最近学习太焦虑,如何戒骄戒躁,静下心来
- 抖音是一款什么样的短视频软件?
- 基于python的可视化成绩分析
- netty初使用——实现http及https代理服务器
- Android平板能装fydeos,在 FydeOS 中如何安装安卓应用 - FydeOS 帮助手册
- 工作流调度系统Apache DolphinScheduler介绍和设计原理