
VB 画图问题 20
我的函数是y=a-(a-b)*Exp(1)^(c*(y-d))Form2.PressureChart.ScaleMode=3Form2.PressureChart.Aut...
我的函数是 y= a - (a - b) * Exp(1) ^ (c * (y - d))
Form2.PressureChart.ScaleMode = 3
Form2.PressureChart.AutoRedraw = True
Form2.PressureChart.Scale (0, 2000)-(1000, 0)
Form2.PressureChart.CurrentX = 0
Form2.PressureChart.CurrentY = 2000
For y = 0 To 1000 Step 100
pf = Pr - (Pr - pwf) * Exp(1) ^ (Sqr(c) * (y - xf))
Form2.PressureChart.Line (0, 2000)-(1000, 0)
Next y
这个是我写的代码,可以显示在form2,但是x,y的坐标,还有图像不太理想。
这个是我的图片,我想做的图和这个图片一样,x轴取值0-1000,y轴取值2000-5000
如果代码很好的话,我追加奖励。。 展开
Form2.PressureChart.ScaleMode = 3
Form2.PressureChart.AutoRedraw = True
Form2.PressureChart.Scale (0, 2000)-(1000, 0)
Form2.PressureChart.CurrentX = 0
Form2.PressureChart.CurrentY = 2000
For y = 0 To 1000 Step 100
pf = Pr - (Pr - pwf) * Exp(1) ^ (Sqr(c) * (y - xf))
Form2.PressureChart.Line (0, 2000)-(1000, 0)
Next y
这个是我写的代码,可以显示在form2,但是x,y的坐标,还有图像不太理想。
这个是我的图片,我想做的图和这个图片一样,x轴取值0-1000,y轴取值2000-5000
如果代码很好的话,我追加奖励。。 展开
4个回答
展开全部
Circle。不知道Circle哪一点惹到了你,以至于你不想用他。给你个Circle得用法参考。
==============
画圆
Circle 方法可画出圆形和椭圆形的各种形状。另外,Circle 方法还可以画出圆弧(圆的一部分)和楔形饼块。使用变化的 Circle 方法,可画出多种曲线。
为了画圆,Visual Basic 需要给出该圆的圆心位置和它的半径。画一个理想圆的语法是:
[object.]Circle [Step](x, y), radius[, color]
方括号表明 object 和 Step 关键字是任选项。如果不指定 object,则认为指定的就是当前的窗体。x 参数和 y 参数是圆心的坐标,radius 参数是圆的半径。例如,下面语句将画出一个以 (1200,1000) 为圆心、750 为半径的圆:
Circle (1200, 1000), 750
这个语句产生的精确作用,还要依赖于窗体的大小和窗体的坐标系。如果不知道窗体的大小,也就不能知道这个圆是否可见。可使用绘图区的标尺属性,将该圆的圆心置于窗体的中心处:
Circle ((ScaleWidth + ScaleLeft) / 2, (ScaleHeight + _
ScaleTop) / 2), ScaleWidth / 4
此时,关于 ScaleWidth 和 ScaleHeight 所有应知道的是,它们能帮助将图形定位于窗体的中心。
详细信息 在本章前面“改变对象的坐标系统”中详细讨论了 ScaleWidth 和 ScaleHeight 属性。
注意 圆的半径通常是按照水平单位来指定的。如果坐标系使用的水平单位和垂直单位是相同的话(按照缺省规定,应当这样),可以不用考虑单位问题。但如果使用的是自定义标尺,则水平单位和垂直单位可能对应不同的长度。上例中,半径是用水平单位来指定的,可以保证圆的实际高度和实际宽度相等。
Blanker 应用程序创建了一些圆圈,作为多彩地毯演示程序的一部分。该演示程序围绕窗体中心画出一系列虚线圆。这些圆看起来正好象一个编织成的圆形地毯。CircleDemo 过程使用下列语句,在多彩地毯演示程序中画圆:
Sub CircleDemo ()
Dim Radius
'将红色设置为随机数。
R = 255 * Rnd
'将绿色设置为随机数。
G = 255 * Rnd
'将蓝色设置为随机数。
B = 255 * Rnd
'将 x 坐标设置在窗体中间。
XPos = ScaleWidth / 2
'将 y 坐标设置在窗体中间。
YPos = ScaleHeight / 2
'将半径设置在窗体高度的 0 到 50% 之间。
Radius = ((YPos * 0.9) + 1) * Rnd
'用随机颜色画圆。
Circle (XPos, YPos), Radius, RGB(R, G, B)
End Sub
多彩地毯演示程序的结果,显示在图 12.16 中。
图 12.16 Blanker 应用程序里的多彩地毯演示程序
画圆弧
为了用 Circle 方法画出圆弧,应以弧度为单位,给出定义弧线 start 和 end 的角度参数。画圆弧的语法是:
[object.]Circle [Step](x, y), radius, [color], start, end[, aspect]
如果 start 参数或 end 参数是负数的话,Visual Basic 将画一条连接圆心到负端点的线。例如,下面的过程将用消除切片方式画出一个饼。
Private Sub Form_Click ()
Const PI = 3.14159265
Circle (3500, 1500), 1000, , –PI / 2, –PI / 3
End Sub
注意 将度换算成弧度的公式是将度数乘以 Pi/180。
==============
画圆
Circle 方法可画出圆形和椭圆形的各种形状。另外,Circle 方法还可以画出圆弧(圆的一部分)和楔形饼块。使用变化的 Circle 方法,可画出多种曲线。
为了画圆,Visual Basic 需要给出该圆的圆心位置和它的半径。画一个理想圆的语法是:
[object.]Circle [Step](x, y), radius[, color]
方括号表明 object 和 Step 关键字是任选项。如果不指定 object,则认为指定的就是当前的窗体。x 参数和 y 参数是圆心的坐标,radius 参数是圆的半径。例如,下面语句将画出一个以 (1200,1000) 为圆心、750 为半径的圆:
Circle (1200, 1000), 750
这个语句产生的精确作用,还要依赖于窗体的大小和窗体的坐标系。如果不知道窗体的大小,也就不能知道这个圆是否可见。可使用绘图区的标尺属性,将该圆的圆心置于窗体的中心处:
Circle ((ScaleWidth + ScaleLeft) / 2, (ScaleHeight + _
ScaleTop) / 2), ScaleWidth / 4
此时,关于 ScaleWidth 和 ScaleHeight 所有应知道的是,它们能帮助将图形定位于窗体的中心。
详细信息 在本章前面“改变对象的坐标系统”中详细讨论了 ScaleWidth 和 ScaleHeight 属性。
注意 圆的半径通常是按照水平单位来指定的。如果坐标系使用的水平单位和垂直单位是相同的话(按照缺省规定,应当这样),可以不用考虑单位问题。但如果使用的是自定义标尺,则水平单位和垂直单位可能对应不同的长度。上例中,半径是用水平单位来指定的,可以保证圆的实际高度和实际宽度相等。
Blanker 应用程序创建了一些圆圈,作为多彩地毯演示程序的一部分。该演示程序围绕窗体中心画出一系列虚线圆。这些圆看起来正好象一个编织成的圆形地毯。CircleDemo 过程使用下列语句,在多彩地毯演示程序中画圆:
Sub CircleDemo ()
Dim Radius
'将红色设置为随机数。
R = 255 * Rnd
'将绿色设置为随机数。
G = 255 * Rnd
'将蓝色设置为随机数。
B = 255 * Rnd
'将 x 坐标设置在窗体中间。
XPos = ScaleWidth / 2
'将 y 坐标设置在窗体中间。
YPos = ScaleHeight / 2
'将半径设置在窗体高度的 0 到 50% 之间。
Radius = ((YPos * 0.9) + 1) * Rnd
'用随机颜色画圆。
Circle (XPos, YPos), Radius, RGB(R, G, B)
End Sub
多彩地毯演示程序的结果,显示在图 12.16 中。
图 12.16 Blanker 应用程序里的多彩地毯演示程序
画圆弧
为了用 Circle 方法画出圆弧,应以弧度为单位,给出定义弧线 start 和 end 的角度参数。画圆弧的语法是:
[object.]Circle [Step](x, y), radius, [color], start, end[, aspect]
如果 start 参数或 end 参数是负数的话,Visual Basic 将画一条连接圆心到负端点的线。例如,下面的过程将用消除切片方式画出一个饼。
Private Sub Form_Click ()
Const PI = 3.14159265
Circle (3500, 1500), 1000, , –PI / 2, –PI / 3
End Sub
注意 将度换算成弧度的公式是将度数乘以 Pi/180。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸...
点击进入详情页
本回答由ZESTRON提供
展开全部
Circle。不知道Circle哪一点惹到了你,以至于你不想用他。给你个Circle得用法参考
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-03-01
展开全部
可以参考一下下面的代码,再详细的就不写了:
Private Sub Command1_Click()
Dim i, j As Long
Dim x, y As Long
Dim x2, y2 As Long
Dim cl As Long
For i = 2195 To 2230
y = (i - 2195) * 30 + 100
If i Mod 5 = 0 Then
PressureChart.Line (25, y)-(630, y), vbBlack
PressureChart.CurrentX = 0
PressureChart.CurrentY = y + 15
PressureChart.Print i
Else
PressureChart.Line (30, y)-(630, y), &H8000000C
End If
Next i
For j = 0 To 1200 Step 50
x = j / 2 + 30
If j Mod 200 = 0 Then
PressureChart.Line (x, 80)-(x, 1150), vbBlack
If j > 0 Then '是数字居中
PressureChart.CurrentX = x - 10
Else
PressureChart.CurrentX = x - 5
End If
PressureChart.CurrentY = 50
PressureChart.Print j
Else
PressureChart.Line (x, 100)-(x, 1150), &H8000000C
End If
Next j
j = 0
For i = 2195 To 2220
'这里x、y举例,具体的要根据你的函数计算
'**********************************
x = j / 2 + 30
y = (i - 2195) * 30 + 100
x2 = (j + 50) / 2 + 30
y2 = (i + 1 - 2195) * 30 + 100
'**********************************
PressureChart.Line (x, y)-(x2, y2), vbBlack
j = j + 50
Next i
End Sub
Private Sub Command1_Click()
Dim i, j As Long
Dim x, y As Long
Dim x2, y2 As Long
Dim cl As Long
For i = 2195 To 2230
y = (i - 2195) * 30 + 100
If i Mod 5 = 0 Then
PressureChart.Line (25, y)-(630, y), vbBlack
PressureChart.CurrentX = 0
PressureChart.CurrentY = y + 15
PressureChart.Print i
Else
PressureChart.Line (30, y)-(630, y), &H8000000C
End If
Next i
For j = 0 To 1200 Step 50
x = j / 2 + 30
If j Mod 200 = 0 Then
PressureChart.Line (x, 80)-(x, 1150), vbBlack
If j > 0 Then '是数字居中
PressureChart.CurrentX = x - 10
Else
PressureChart.CurrentX = x - 5
End If
PressureChart.CurrentY = 50
PressureChart.Print j
Else
PressureChart.Line (x, 100)-(x, 1150), &H8000000C
End If
Next j
j = 0
For i = 2195 To 2220
'这里x、y举例,具体的要根据你的函数计算
'**********************************
x = j / 2 + 30
y = (i - 2195) * 30 + 100
x2 = (j + 50) / 2 + 30
y2 = (i + 1 - 2195) * 30 + 100
'**********************************
PressureChart.Line (x, y)-(x2, y2), vbBlack
j = j + 50
Next i
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询