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