To d983074(d983074) :
取一个值,如0.000000000001,当小于这个值得时候就认为等于0
这个办法我考虑过,问题是这个值如何取?不容易确定。因为
|r1×r2|=R1*R2*Sinα,α为r1和r2的夹角,而
|(r1×r2)·r|=(R1*R2*R*Sinα)*Cosβ,β为r1×r2和r的夹角。
可知Cosβ等于|r1×r2|除以|(r1×r2)·r|,若算出Cosβ从而算出
β,则可以根据β的值与90°之差小于某个值来判定,这“某个值”
容易确定,因为β的值与90°之差的几何意义就是点与边界的偏离
程度,若以点与边界的偏离程度不超过0.1度(1度约为111公里)为
判定边界点的允许误差,即可取该值为0.1。但Cosβ的计算可能就
有问题,因为分母中含有因子Sinα(这在边界比较密集时是很小
的值),估计容易带来溢出问题,就算不溢出,精度也难以控制。
取一个值,如0.000000000001,当小于这个值得时候就认为等于0
这个办法我考虑过,问题是这个值如何取?不容易确定。因为
|r1×r2|=R1*R2*Sinα,α为r1和r2的夹角,而
|(r1×r2)·r|=(R1*R2*R*Sinα)*Cosβ,β为r1×r2和r的夹角。
可知Cosβ等于|r1×r2|除以|(r1×r2)·r|,若算出Cosβ从而算出
β,则可以根据β的值与90°之差小于某个值来判定,这“某个值”
容易确定,因为β的值与90°之差的几何意义就是点与边界的偏离
程度,若以点与边界的偏离程度不超过0.1度(1度约为111公里)为
判定边界点的允许误差,即可取该值为0.1。但Cosβ的计算可能就
有问题,因为分母中含有因子Sinα(这在边界比较密集时是很小
的值),估计容易带来溢出问题,就算不溢出,精度也难以控制。
解决方案 »
- ADOQuery1关于链接字符串的使用问题
- dbgrideh 中lookup字段显示问题
- 如何做图形裁剪?就是指定只在一个 Rect 里做图,超出的就不显示了?
- 怎么样使stringgrid的最后一行设置成为不滚动?
- 请问如何让combox在输入数据后自动下拉
- 如何把缓冲区内的8字节十六进制数据转化成十进制数据
- 我装了一个InfoPower4000Pro_vcl7为什么里成只有一个wwdatasource和一个wwrecordviewpanel呀其他的呢,为什么没有呀
- 图片在程序页面如何充满?
- 关于锁鼠标和键盘的小问题!
- delphi 开发的调试
- 判断数据库连接
- SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,nil,0)在win2000没有作用,为什么?
详细内容可参考《数学分析》
而(r1×r2)=
[(Cosλ1* Cosφ1)ex+ (Cosλ1*Sinφ1) ey+ (Sinλ1) ez]
×[(Cosλ2* Cosφ2)ex+ (Cosλ2*Sinφ2) ey+ (Sinλ2) ez]
可知Sinα也是Φ1、λ1、Φ2、λ2的三角函数的表达式,所以我就拿不准这个表达式在分母时是否会带来溢出问题。我会先试验看结果如何。如各位有何新的想法请不吝赐教。