1.5 != 1.50000005

发布时间 2023-07-10 08:35:51作者: 我去好烦啊

最近在做网格变换,遇到一个问题,在对接面一侧做拉伸变换,另一侧做平移变换,导致一个问题:变换后的网格在对接面处,被识别处两个面。

原因:对接面位置的判断是基于一个参考值(对接面在某方向的坐标值)。这个值是由误差的,在pointwise中点的容差默认是1e-4。

导致:出现这样的操作

a、b被认为是同一个点 1.5(含容差)

```

对接面一侧

double a

a = a0 * s;

 

对接面另一侧

double b

b = a0  + ( 1.5* (s-1))

 

a-b = (1.5-a0)*(s-1)

差距s-1倍的容差

```