主题:为什么画出的太极图最下面缺一块?
大懒猫
[专家分:220] 发布于 2008-12-05 10:16:00
在窗体的图片框上画太极图
Private Sub Picture1_Click()
pi = 3.1415926
x = Picture1.Width / 2
y = Picture1.Height / 2
r = Picture1.Height / 2
Picture1.Circle (x, y), r, QBColor(0) '圆心在图片框的正中央,画圆
Picture1.Circle (x, y / 2), r / 2, , pi / 2, pi * 3 / 2 '大圆中间上面的左圆弧
Picture1.Circle (x, y * 3 / 2), r / 2, , pi * 3 / 2, pi / 2 '大圆中间下面的右圆弧
Picture1.FillStyle = 0 '填充风格为透明
Picture1.Circle (x, y / 2), r / 8
Picture1.Circle (x, y * 3 / 2), r / 8
'Picture1.FillStyle = 1
End Sub
为什么画出的太极图最下面缺一块?也就是说,为什么最下面被图片框的底边"切"了一部分去,而最上面是完整的呢?[em18]
回复列表 (共5个回复)
沙发
guoyong_cy [专家分:3050] 发布于 2008-12-05 11:48:00
1.因为picturebox有边框
2.如果你已经把边框改成没有了,那可能是你没注意到picture1.width
在picture1.width的距离上画线,实际上已经跑到picture1的外面了!
板凳
大懒猫 [专家分:220] 发布于 2008-12-05 11:54:00
[quote]
在picture1.width的距离上画线,实际上已经跑到picture1的外面了![/quote]为什么?不懂!还请指点,谢谢!
[em19]
3 楼
天天学习 [专家分:4570] 发布于 2008-12-05 21:38:00
[quote]x = Picture1.Width / 2
y = Picture1.Height / 2
r = Picture1.Height / 2
[/quote]
把picture1.height,picture1.width分别改为picture1.scaleheight,picture1.scaleWidth
4 楼
pariszh [专家分:740] 发布于 2008-12-05 22:39:00
你可以这样试一下,染上了黑白两种颜色
Private Sub Picture1_Click()
Picture1.Cls
Dim i As Long
pi = 3.1415926
x = Picture1.Width / 2 - 50
y = Picture1.Height / 2 - 50
r = Picture1.Height / 2 - 50
Picture1.FillStyle = 0
Picture1.DrawWidth = 2
For i = 0 To r Step 2
Picture1.ForeColor = vbWhite
Picture1.Circle (x, y), i, , pi / 2, pi * 3 / 2 '圆心在图片框的正中央,画圆
Picture1.ForeColor = vbBlack
Picture1.Circle (x, y), i, , pi * 3 / 2, pi / 2 '圆心在图片框的正中央,画圆
Next i
Picture1.ForeColor = vbBlack
Picture1.FillColor = vbBlack
Picture1.Circle (x, y / 2), r / 2 '大圆中间上面的左圆弧
Picture1.ForeColor = vbWhite
Picture1.FillColor = vbWhite
Picture1.Circle (x, y * 3 / 2), r / 2 '大圆中间下面的右圆弧
Picture1.Circle (x, y / 2), r / 8
Picture1.ForeColor = vbBlack
Picture1.FillColor = vbBlack
Picture1.Circle (x, y * 3 / 2), r / 8
End Sub
5 楼
guoyong_cy [专家分:3050] 发布于 2008-12-06 11:16:00
[quote][quote]
在picture1.width的距离上画线,实际上已经跑到picture1的外面了![/quote]为什么?不懂!还请指点,谢谢!
[em19][/quote]
你最好先把scalewidth和width区分一下,不过在窗体和图片框的scalemode一样的情况下,把图片框设成无边框,而其他都是默认值时没什么区别,所以上面我没特别说明。
注意:窗口的宽度起始都是以0开始的,比如宽度为3,那么最右边实际为2(坐标为0,1,2),当你画到3的时候实际上已经画到窗口外面去了!
我来回复