作业帮 > 综合 > 作业

VB中:Picture1.Line (40 * x1 / e,40 * y1 / e)-(40 * x2 / e,40

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/04/30 18:44:49
VB中:Picture1.Line (40 * x1 / e,40 * y1 / e)-(40 * x2 / e,40 * y2 / e) 请问40
Private Sub Command2_Click()
Dim x1 As Double
Dim x2 As Double
Dim y1 As Double
Dim y2 As Double
Dim d1 As Double
Dim dx As Double
Dim dy As Double
Dim f As Double '定义变量
Dim X As Double
Dim Y As Double
Dim a As Double
Dim b As Double
Dim c As Double
Dim d As Double
Dim e As Double
Dim n As Integer
x1 = Text1.Text '起点终点坐标赋值
y1 = Text2.Text
x2 = Text3.Text
y2 = Text4.Text
d1 = Text5.Text
X = x1
Y = y1
f = (x2 - x1) * (Y - y1) - (y2 - y1) * (X - x1) '偏差函数
If x2 >= x1 Then
dx = d1
a = x2
b = x1
If y2 >= y1 Then
dy = d1
c = y2
d = y1
Else:dy = -d1
c = y1
d = y2
End If
Else:dx = -d1
a = x1
b = x2
If y2 >= y1 Then
dy = d1
c = y2
d = y1
Else:dy = -d1
c = y1
d = y2
End If
End If
If a > c Then
e = a
Else:e = c
End If
Picture1.Line (40 * x1 / e,40 * y1 / e)-(40 * x2 / e,40 * y2 / e) '画直线
Do While n < (a - b + c - d) / d1 ' 终点计数器,终点判断
If (x2 - x1) * (y2 - y1) > 0 Then '第一象限
If f >= 0 Then
Picture1.Line (40 * X / e,40 * Y / e)-(40 * (X + dx) / e,40 * Y / e)
X = X + dx
n = n + 1
Else
Picture1.Line (40 * X / e,40 * Y / e)-(40 * X / e,40 * (Y + dy) / e)
Y = Y + dy
n = n + 1
End If
f = (x2 - x1) * (Y - y1) - (y2 - y1) * (X - x1)
Else
If f >= 0 Then
Picture1.Line (40 * X / e,40 * Y / e)-(40 * X / e,40 * (Y + dy) / e)
Y = Y + dy
n = n + 1
Else
Picture1.Line (40 * X / e,40 * Y / e)-(40 * (X + dx) / e,40 * Y / e)
X = X + dx
n = n + 1
End If
f = (x2 - x1) * (Y - y1) - (y2 - y1) * (X - x1)
End If
Loop
End Sub
这是我课设用的一段程序,没学过vb,
Picture1.Line (40 * x1 / e,40 * y1 / e)-(40 * x2 / e,40 * y2 / e) 中的40怎么来的,
VB中:Picture1.Line (40 * x1 / e,40 * y1 / e)-(40 * x2 / e,40
你这个程序是用来干嘛的?
应该就是一个随便给定的值 可以改成50或者60 没什么影响
就是起一个放大的作用吧
你可以把运行一下把数据改一下再运行一下 应该没有影响
再问: 用来做第一象限逐点法直线插补。。。。40这个数字是什么单位换算吗。。。怎么来的啊,求解释~~~哦,这样啊,我试试,你别下线啊,谢了~~~
再答: 不是的 我是这样想的 如果没有这个四十可能这个距离看不到 40可能是起到一个放大的作用 我现在把VB卸了 不然我可以帮你运行一下看看 你最好把数字改一下再运行一下 如果功能没有变那么说明就是一个随便的数字
再问: 哦,我试了,改成50了,好像没什么变化,你说得应该没错,但是我再问下,插补的时候为什么要放大呢,插补的下一个坐标不是一个一个算出来嘛,放大了不和原来偏得更远了?但是我觉得腻说得很有道理,是不是插补的时候所有点一起放大效果不会变啊。。。好像我的图形插补的线条距离离得远。。。我再改数据试试~~谢谢
再答: 恩 因为vb中图像值是很小 比如我在用print时间时要使两个数空开 也是随便输入一个倍数 这个很常见的
再问: 我截图对比了,40比50的插补步数会多,点的间隙比50的小。。。应该就是这个意思。。谢谢你了~~~~我自己再去想下细节。好吧,待会有问题我就再问你哈~~~呵呵,明天采纳你的最佳答案~~
再答: 好 不用谢