grassdds 发表于 2006-5-25 21:30:00

大侠们~~ 帮帮忙吧~~~ 呜呜呜......

<P>在vba中如何实现叉乘??</P>
<P>能不能调用现有的函数?&nbsp; </P>
<P>我自己编写了一个实现叉乘的函数,发现经过计算后,数值有些许的计算误差,导致在运行到 下列程序 时,出现错误说&nbsp;新设置的x轴与y轴不垂直</P>
<P>Set ucsObj = ThisDrawing.UserCoordinateSystems.&nbsp;Add(origin, xAxisPnt, yAxisPnt, "New_UCS")&nbsp;&nbsp;&nbsp; </P>
<P>为了验证是否是计算误差的原因, 我进行了下列计算</P>
<P>由已知的&nbsp; N&nbsp;经过一系列计算(包含叉乘等),得到Ax&nbsp; 与Ay,其中N Ax Ay三者相互垂直,满足右手定则</P>
<P>然后 再由&nbsp; Ax&nbsp; 叉乘 Ay&nbsp; 得到 NF</P>
<P>如果不存在计算误差,&nbsp; 那么 N 与NF 的各个分量应该都完全相等</P>
<P>但是经过计算,他们存在其为微弱的差别&nbsp;&nbsp; </P>
<P>我认为正是这极其微弱的差别导致上面的函数认为Ax Ay 不垂直</P>
<P>这要怎样解决啊 ~~~~~&nbsp;&nbsp; 我要愁死了!</P>
<P>呜呜呜~~</P>

雪山飞狐_lzh 发表于 2006-5-26 15:04:00

你可以设置一个阈值,比如10的-8次方
页: [1]
查看完整版本: 大侠们~~ 帮帮忙吧~~~ 呜呜呜......