菜鸟请问VB绘图问题

[复制链接]
查看11 | 回复3 | 2021-1-27 06:05:16 | 显示全部楼层 |阅读模式
围绕一个小圆画一圈大圆,为什么当“大圆半径”太大时,画出来的圆形失真?
PrivateSubCommand1_Click()
x=CDbl(x.Text)
y=CDbl(y.Text)
dybj=CDbl(dy.Text)
xybj=CDbl(xy.Text)
Fori=0ToCDbl(xsjd.Text)StepCDbl(fbl.Text)
Pic1.Circle(x+(xybj+dybj)*Cos(i*0.0174532925199),y+(xybj+dybj)*Sin(i*0.0174532925199)),dybj
Nexti
EndSub
PrivateSubCommand3_Click()
Pic1.Cls
EndSub
PrivateSubCommand4_Click()
x=CInt(x.Text)
y=CInt(y.Text)
dybj=CDbl(dy.Text)
xybj=CDbl(xy.Text)
Pic1.Circle(x,y),xybj,QBColor(15)
EndSub


分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:05:16 | 显示全部楼层
绘图函数的坐标参数都是Single类型(你可以看一下Circle方法的帮助),按照你图中的参数计算
CSng(5000+(174999+3000)*cos(0.1*0.0174532925199))=182998.7
最小精度已经接近整数位了,定位不准导致圆形失真很正常啊。
回复

使用道具 举报

千问 | 2021-1-27 06:05:16 | 显示全部楼层
这个有办法解决吗?
回复

使用道具 举报

千问 | 2021-1-27 06:05:16 | 显示全部楼层
没有。大和精细总是矛盾的。
限制输入范围吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行