为什么Vb中用画圆函数circle和根据数学里圆的参数方程逐一取点画圆结果不一样呢?

前者画的是真正的圆,而后者画出来的确实椭圆
这是我写的小代码:
Private Sub Command1_Click()
Const pi = 3.14159265358979
Picture1.Scale (-320, -240)-(320, 240)
Picture1.Cls
Picture1.Circle (0, 0), 155, QBColor(3)
For th = 0 To 2 * pi Step pi / 1000
x = 155 * Cos(th)
y = 155 * Sin(th)
Picture1.PSet (x, y), QBColor(4)
Next th
End Sub
这是为什么呢?请高手指点指点.谢谢了!
如果我用数学方法逐一取点画圆,要如何设置坐标系统才能让它画出一个圆来呢?

那是因为你的坐标系统的问题,你的X轴与Y轴的刻度不是等距离的
在用circle方法的时候,由于你这儿是用的scale手动设置的,那么,这时绘图系统会自己计算出一个度量单位,转换后,再进行输出,由于转换后,XY两方向上被统一,所以,画出来的是一个圆
而你用数学方法画的时候,没有中间的转换过程,所以,画出来的就是一个椭圆
--------
那就要将比例统一
Picture1.Scale (-320, -240)-(320, 240)
改成:
Picture1.Scale (-320, -240)-(320, 640*picture1.height/picture1.width -240)
温馨提示:答案为网友推荐,仅供参考
相似回答