avatar
如何避免round off error# Programming - 葵花宝典
i*D
1
我想判断3d空间中一个线段和在一个点的关系. 这个点在这个线段的直线上,我想判断
它在线段的两个端点之间还是在之外. 这个问题本身是一个明确的判断,不能容忍error
和tolerance.
比如线段是AB, 另外一个点是C. 我的方法是判断if AB-(AC+BC)<0. 但是在实际运算中
,我发现即便是C在AB之间,也有很多时候AB-(AC+BC)<0. 应该是因为round off error.
不知道有什么好的trick或者策略来解决这个问题.
avatar
g*y
2
你如果确定C一定和AB共线的话,没必要计算点间距离,只要判断C的3个坐标值都在
AB所在区间内就可以了吧?

error
.

【在 i*******D 的大作中提到】
: 我想判断3d空间中一个线段和在一个点的关系. 这个点在这个线段的直线上,我想判断
: 它在线段的两个端点之间还是在之外. 这个问题本身是一个明确的判断,不能容忍error
: 和tolerance.
: 比如线段是AB, 另外一个点是C. 我的方法是判断if AB-(AC+BC)<0. 但是在实际运算中
: ,我发现即便是C在AB之间,也有很多时候AB-(AC+BC)<0. 应该是因为round off error.
: 不知道有什么好的trick或者策略来解决这个问题.

avatar
m*e
3
|Ab-(ac+bc)|
error
.

【在 i*******D 的大作中提到】
: 我想判断3d空间中一个线段和在一个点的关系. 这个点在这个线段的直线上,我想判断
: 它在线段的两个端点之间还是在之外. 这个问题本身是一个明确的判断,不能容忍error
: 和tolerance.
: 比如线段是AB, 另外一个点是C. 我的方法是判断if AB-(AC+BC)<0. 但是在实际运算中
: ,我发现即便是C在AB之间,也有很多时候AB-(AC+BC)<0. 应该是因为round off error.
: 不知道有什么好的trick或者策略来解决这个问题.

avatar
a*f
4
几何线段没有宽度的,试试用矢量投影矩阵把点投影到线段上,看距离是不是小于设定
的阈值

error
.

【在 i*******D 的大作中提到】
: 我想判断3d空间中一个线段和在一个点的关系. 这个点在这个线段的直线上,我想判断
: 它在线段的两个端点之间还是在之外. 这个问题本身是一个明确的判断,不能容忍error
: 和tolerance.
: 比如线段是AB, 另外一个点是C. 我的方法是判断if AB-(AC+BC)<0. 但是在实际运算中
: ,我发现即便是C在AB之间,也有很多时候AB-(AC+BC)<0. 应该是因为round off error.
: 不知道有什么好的trick或者策略来解决这个问题.

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。