我用VB画圆弧,为什么有时候画的圆弧正确,而有的时候画的变整圆了?
其中起点是(z1,x1),终点是(z2,x2)。圆心是(z3,x3)下面是判断起始和终止弧度的,有问题吗?(坐标系是z-x的)两个option选择顺圆和逆圆的?求解拜谢判...
其中起点是(z1,x1),终点是(z2,x2)。圆心是(z3,x3)
下面是判断起始和终止弧度的,有问题吗?
(坐标系是z-x的)
两个option选择顺圆和逆圆的?
求解
拜谢
判断程序见下
If z1 > z3 And x1 >= x3 Then
s = Atn((x1 - x3) / (z1 - z3))
ElseIf z1 < z3 And x1 >= x3 Then
s = pi - Atn((x1 - x3) / Abs(z1 - z3))
ElseIf z1 < z3 And x1 < x3 Then
s = pi + Atn(Abs(x1 - x3) / Abs(z1 - z3))
ElseIf z1 > z3 And x1 < x3 Then
s = 2 * pi - Atn(Abs(x1 - x3) / (z1 - z3))
ElseIf z1 = z3 And x1 > x3 Then
s = pi / 2
Else: s = 3 * pi / 2
End If
If z2 > z3 And x2 >= x3 Then
e = Atn((x2 - x3) / (z2 - z3))
ElseIf z2 < z3 And x2 >= x3 Then
e = pi - Atn((x2 - x3) / Abs(z2 - z3))
ElseIf z2 < z3 And x2 < x3 Then
e = pi + Atn(Abs(x2 - x3) / Abs(z2 - z3))
ElseIf z2 > z3 And x2 < x3 Then
e = 2 * pi - Atn(Abs(x2 - x3) / (z2 - z3))
ElseIf z2 = z3 And x2 > x3 Then
e = pi / 2
Else: e = 3 * pi / 2
End If
If Option1 = True Then '顺圆
零件确认.Circle (z3 * 24 + 3000, -x3 * 24 + 5280), (Sqr((z1 - z3) ^ 2 + (x1 - x3) ^ 2)) * 24, QBColor(12), e, s
n = 0
End If
If Option2 = True Then '逆圆
零件确认.Circle (z3 * 24 + 3000, -x3 * 24 + 5280), (Sqr((z1 - z3) ^ 2 + (x1 - x3) ^ 2)) * 24, QBColor(12), s, e
n = 1
End If
画圆弧的时候(0,0)和(100,0),圆心(50,0)就是整圆
而(0,40)和(0,0),圆心(20,0)就是半圆,为什么呢? 展开
下面是判断起始和终止弧度的,有问题吗?
(坐标系是z-x的)
两个option选择顺圆和逆圆的?
求解
拜谢
判断程序见下
If z1 > z3 And x1 >= x3 Then
s = Atn((x1 - x3) / (z1 - z3))
ElseIf z1 < z3 And x1 >= x3 Then
s = pi - Atn((x1 - x3) / Abs(z1 - z3))
ElseIf z1 < z3 And x1 < x3 Then
s = pi + Atn(Abs(x1 - x3) / Abs(z1 - z3))
ElseIf z1 > z3 And x1 < x3 Then
s = 2 * pi - Atn(Abs(x1 - x3) / (z1 - z3))
ElseIf z1 = z3 And x1 > x3 Then
s = pi / 2
Else: s = 3 * pi / 2
End If
If z2 > z3 And x2 >= x3 Then
e = Atn((x2 - x3) / (z2 - z3))
ElseIf z2 < z3 And x2 >= x3 Then
e = pi - Atn((x2 - x3) / Abs(z2 - z3))
ElseIf z2 < z3 And x2 < x3 Then
e = pi + Atn(Abs(x2 - x3) / Abs(z2 - z3))
ElseIf z2 > z3 And x2 < x3 Then
e = 2 * pi - Atn(Abs(x2 - x3) / (z2 - z3))
ElseIf z2 = z3 And x2 > x3 Then
e = pi / 2
Else: e = 3 * pi / 2
End If
If Option1 = True Then '顺圆
零件确认.Circle (z3 * 24 + 3000, -x3 * 24 + 5280), (Sqr((z1 - z3) ^ 2 + (x1 - x3) ^ 2)) * 24, QBColor(12), e, s
n = 0
End If
If Option2 = True Then '逆圆
零件确认.Circle (z3 * 24 + 3000, -x3 * 24 + 5280), (Sqr((z1 - z3) ^ 2 + (x1 - x3) ^ 2)) * 24, QBColor(12), s, e
n = 1
End If
画圆弧的时候(0,0)和(100,0),圆心(50,0)就是整圆
而(0,40)和(0,0),圆心(20,0)就是半圆,为什么呢? 展开
展开全部
在对象上画圆、椭圆或弧。
语法
object.Circle [Step] (x, y), radius, [color, start, end, aspect]
Circle 方法的语法有如下的对象限定符和部分:
部分 描述
object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点的窗体作为object。
Step 可选的。关键字 ,指定圆、椭圆或弧的中心,它们相对于当前 object 的 CurrentX 和 CurrentY 属性提供的坐标。
(x, y) 必需的。 Single (单精度浮点数),圆、椭圆或弧的中心坐标。object 的 ScaleMode 属性决定了使用的度量单位。
radius 必需的。Single (单精度浮点数),圆、椭圆或弧的半径。 object 的 ScaleMode 属性决定了使用的度量单位。
color 可选的。Long (长整型数),圆的轮廓的 RGB 颜色。如果它被省略,则使用 ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。
start, end 可选的。 Single (单精度浮点数),当弧、或部分圆或椭圆画完以后,start 和 end 指定(以弧度为单位)弧的起点和终点位置。其范围从 -2 pi 到 2 pi 。起点的缺省值是0; 终点的缺省值是2 * pi。
aspect 可选的。 Single (单精度浮点数),圆的纵横尺寸比。缺省值为 1.0,它在如何屏幕上都产生一个标准圆(非椭圆)。
语法
object.Circle [Step] (x, y), radius, [color, start, end, aspect]
Circle 方法的语法有如下的对象限定符和部分:
部分 描述
object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点的窗体作为object。
Step 可选的。关键字 ,指定圆、椭圆或弧的中心,它们相对于当前 object 的 CurrentX 和 CurrentY 属性提供的坐标。
(x, y) 必需的。 Single (单精度浮点数),圆、椭圆或弧的中心坐标。object 的 ScaleMode 属性决定了使用的度量单位。
radius 必需的。Single (单精度浮点数),圆、椭圆或弧的半径。 object 的 ScaleMode 属性决定了使用的度量单位。
color 可选的。Long (长整型数),圆的轮廓的 RGB 颜色。如果它被省略,则使用 ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。
start, end 可选的。 Single (单精度浮点数),当弧、或部分圆或椭圆画完以后,start 和 end 指定(以弧度为单位)弧的起点和终点位置。其范围从 -2 pi 到 2 pi 。起点的缺省值是0; 终点的缺省值是2 * pi。
aspect 可选的。 Single (单精度浮点数),圆的纵横尺寸比。缺省值为 1.0,它在如何屏幕上都产生一个标准圆(非椭圆)。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询