用vb pset画图报错
我想用pset画y=x^(0.5)的图.PrivateSubCommand1_Click()Picture1.Scale(-Picture1.Width/200,Pict...
我想用pset 画y=x^(0.5)的图.
Private Sub Command1_Click()
Picture1.Scale (-Picture1.Width / 200, Picture1.Height / 2)-(Picture1.Width / 200, -Picture1.Height / 2)
Picture1.Line (-Picture1.Width / 2, 0)-(Picture1.Width / 2, 0) ' X轴
Picture1.Line (0, -Picture1.Height / 2)-(0, Picture1.Height / 2) ' Y轴
For x = -Picture1.Width / 2 To Picture1.Width / 2
y = x ^ 0.5
Picture1.PSet (x, y)
Next x
End Sub
一运行到y = x ^ 0.5时就报错,无效的过程调用或参数。
但y=x^k(k只要是整数,就可以画出来),不是整数就报错。
求哪位高人指点指点,感恩不尽,追加50分。
再问一句,
按理说x^(1/3)是可以让x 取负值的,为什么VB里面不允许? 展开
Private Sub Command1_Click()
Picture1.Scale (-Picture1.Width / 200, Picture1.Height / 2)-(Picture1.Width / 200, -Picture1.Height / 2)
Picture1.Line (-Picture1.Width / 2, 0)-(Picture1.Width / 2, 0) ' X轴
Picture1.Line (0, -Picture1.Height / 2)-(0, Picture1.Height / 2) ' Y轴
For x = -Picture1.Width / 2 To Picture1.Width / 2
y = x ^ 0.5
Picture1.PSet (x, y)
Next x
End Sub
一运行到y = x ^ 0.5时就报错,无效的过程调用或参数。
但y=x^k(k只要是整数,就可以画出来),不是整数就报错。
求哪位高人指点指点,感恩不尽,追加50分。
再问一句,
按理说x^(1/3)是可以让x 取负值的,为什么VB里面不允许? 展开
3个回答
展开全部
如果允许,则x^(1/3)*(x^(1/2))^(1/3)=x^(1/2)就会成立,这要出问题的。所以,在VB里,当幂指数不为整数时,对乘方^这个操作符中的底数干脆全部做非负数的限制了。
一○○度说的是对的,x^0.5就是x^(1/2),求x的平方根,前提是x为非负数。
y=abs(x)^0.5就可以了,abs是取绝对值。
另外,在Picture里画图,用Scale初始化坐标系后,画图过程中,就不要调用Picture的Height和Width值了,它们是相对于窗体的值,而Picture内部的是ScaleHeight和ScaleWidth,用这两个值才是理想的。
你把以下代码复制过去,运行一下看看。
Private Sub Command1_Click()
Picture1.ScaleWidth = 2000
Picture1.ScaleHeight = 100
xlen = Picture1.ScaleWidth / 2
ylen = Picture1.ScaleHeight / 2
Picture1.Scale (-xlen, ylen)-(xlen, -ylen)
Picture1.Line (-xlen, 0)-(xlen, 0) ' X轴
Picture1.Line (0, -ylen)-(0, ylen) ' Y轴
Rem 以上代码是初始化坐标系
For x = -xlen To xlen
y = Abs(x) ^ 0.5
Picture1.PSet (x, y)
Next x
End Sub
一○○度说的是对的,x^0.5就是x^(1/2),求x的平方根,前提是x为非负数。
y=abs(x)^0.5就可以了,abs是取绝对值。
另外,在Picture里画图,用Scale初始化坐标系后,画图过程中,就不要调用Picture的Height和Width值了,它们是相对于窗体的值,而Picture内部的是ScaleHeight和ScaleWidth,用这两个值才是理想的。
你把以下代码复制过去,运行一下看看。
Private Sub Command1_Click()
Picture1.ScaleWidth = 2000
Picture1.ScaleHeight = 100
xlen = Picture1.ScaleWidth / 2
ylen = Picture1.ScaleHeight / 2
Picture1.Scale (-xlen, ylen)-(xlen, -ylen)
Picture1.Line (-xlen, 0)-(xlen, 0) ' X轴
Picture1.Line (0, -ylen)-(0, ylen) ' Y轴
Rem 以上代码是初始化坐标系
For x = -xlen To xlen
y = Abs(x) ^ 0.5
Picture1.PSet (x, y)
Next x
End Sub
展开全部
你的判断有误
y = x ^ 0.5 表示求 x 的平方根,等同于 y = Sqr(x)
负数是不能开方的,肯定是当 x 小于 0 时报错。
处理方法:
1.设法避免出现 x<0 的情况
2.或者干脆在 y = x ^ 0.5 上面添加语句 On Error Resume Next ,让VB自动忽略此错误
y = x ^ 0.5 表示求 x 的平方根,等同于 y = Sqr(x)
负数是不能开方的,肯定是当 x 小于 0 时报错。
处理方法:
1.设法避免出现 x<0 的情况
2.或者干脆在 y = x ^ 0.5 上面添加语句 On Error Resume Next ,让VB自动忽略此错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-05-29
展开全部
发现,这个叫玫瑰花的朋友,真的很专业很热心,看了你回答的好几个问题,非常敬佩你。。。我是初学的,可以向你请教吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询