急:用Picturebox控件的line方法绘图时如何填充不规则图形(如不规则四边形,四点的坐标已知)

qqyong 2003-09-17 04:51:07
用Picturebox控件的line方法绘图时如何填充不规则图形(如不规则四边形,四点的坐标已知)
...全文
127 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
James0001 2003-09-19
  • 打赏
  • 举报
回复
picturebox 的坐标和 API 的坐标不是通用的。
XUZIFENG 2003-09-19
  • 打赏
  • 举报
回复
应该是要选择一个种子点,此点坐标选在区域内任一点,有可能默认为 0,0 所以在区域外
阿甘 2003-09-18
  • 打赏
  • 举报
回复
看你的想法不就是画个走线图么,用MSChart不是更方便?
阿甘 2003-09-18
  • 打赏
  • 举报
回复
先把你的double转成整型吧,不然当然没法画
jlum99 2003-09-18
  • 打赏
  • 举报
回复
CreatePolyPolygonRgn , 把数据依次放入一个数组,数组有结构的.
type pos
x as long
y as long
end type
要加入的点数。函数返回的一个区域句柄,然后用filergn就可以了
qqyong 2003-09-18
  • 打赏
  • 举报
回复
???????????
Sean918 2003-09-18
  • 打赏
  • 举报
回复
用API是一个方法,不过前提是你的多边形也是用API画的

另外如果是用line画的封闭多边形,你也可以参照 MASK 图的方法来填充

具体搜索一下 MASK 好了
Gelim 2003-09-18
  • 打赏
  • 举报
回复
使用API函数!·
qqyong 2003-09-18
  • 打赏
  • 举报
回复
谢谢楼上大哥的回答,非常佩服!我现有一问题,我的数据需要自定义坐标系,即用到了picturebox的scale属性当我要填充某一区域时,它却把外面的部分给填充了,很是不可理解?
还望大哥再次帮忙!
sxs69 2003-09-18
  • 打赏
  • 举报
回复
Private Declare Function FloodFill Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long

Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long

Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Sub Command2_Click()
Picture1.ScaleMode = 3
Picture1.Line (50, 50)-(300, 100)
Picture1.Line (300, 100)-(250, 300)
Picture1.Line (250, 300)-(50, 200)
Picture1.Line (50, 200)-(50, 50)
Dim hBrush As Long
Dim hOldBrush As Long
hBrush = CreateSolidBrush(RGB(255, 0, 0))
hOldBrush = SelectObject(Picture1.hdc, hBrush)
FloodFill Picture1.hdc, 100, 100, RGB(0, 0, 0)
SelectObject Picture1.hdc, hOldBrush
DeleteObject hBrush
End Sub
qqyong 2003-09-17
  • 打赏
  • 举报
回复
一部分数据如下:
0,12.42
1.7,12.29
8,9.71
18,9.51
21,7.75
22.5,7.3
23,6.95
24,6.6
25,6.59
26,6.62
27,6.61
28,6.6
29,6.6
30,6.14
31,6.29
32,5.9
33,5.64
34,5.36
35,5.2
36,5.13

要求是:这些点与x,y轴组成的闭合区域进行填充,我不知道怎么写?哪位师傅帮帮我,分好说!!下次我会送更多分
qqyong 2003-09-17
  • 打赏
  • 举报
回复
?
qqyong 2003-09-17
  • 打赏
  • 举报
回复
用CreatePolyPolygonRgn 建立不规则区域时,它的第一个参数为整型,而我的坐标点为Double型,怎么办?
rocky2 2003-09-17
  • 打赏
  • 举报
回复
用API
Public Declare Function CreatePolyPolygonRgn Lib "gdi32" Alias "CreatePolyPolygonRgn" (lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
创建区域,

Public Declare Function FillRgn Lib "gdi32" Alias "FillRgn" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long
填充颜色


TechnoFantasy 2003-09-17
  • 打赏
  • 举报
回复
参考:http://www.applevb.com/qa/qa000242.htm
daviddivad 2003-09-17
  • 打赏
  • 举报
回复
只能用API了

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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