[讨论] 请大家探讨一下用VB二次开发cad中的计算误差问题,该怎么解决?
我简单的举个例子下面是一个代码:Public Function GetPointAR(ByVal ptBase As Variant, ByVal angle As Double, ByVal Length As Double) As Variant
Dim pt(0 To 2) As Double
pt(0) = ptBase(0) + Length * Cos(angle)
pt(1) = ptBase(1) + Length * Sin(angle)
pt(2) = ptBase(2)
GetPointAR = pt
End Function '这是一个得到和已知点偏移一定角度和距离的点的自定义函数
Dim yuanxing(0 To 2) As Double
Dim point As Variant
Dim point1 As Variant
Dim AddLineXY As AcadLine
yuanxing(0 )=0:yuanxing(1 )=0:yuanxing(2 )=0
point=GetPointAR(yuanxing,3.14-50*3.14/180,5) '从圆心用函数得到偏移-50度距离5的一个点
point1=GetPointAR(yuanxing,-50*3.14/180,5) '从圆心用函数得到偏移130度距离5的一个点
SetAddLineXY = ThisDrawing.ModelSpace.AddLine(point, point1) '用得到的两个点画一条直线
画完之后我发现我画的这条直线 居然不过
圆心的那个点有误差
????
请问高手们有没有遇到过这中情况,是我的算法有错误?还有因为
计算弧度引入∏(3.14)的问题?
怎么解决?谢谢
了!!!
应该是计算弧度引入∏(3.14)的问题
解决用:
Dim pi
pi=4*Atn(1)'计算pi值. pi的值是什么呀????
pi=4*Atn(1)中的1如果是一的话计算出来是180
怎么不懂了??还是那个是l弧度长?还是什么?
pi是弧度,即3.14.........,不是180(角度)
你好....
atn(1)=45度,。。。。
在CAD中函数用到的或返回的角度都是以弧度为单位的。
你的误差就是PI的精度不够,导致数值越大误差越大。
是atn不是tan
页:
[1]