我有简单的代码,它用圆柱体包围的区域标记节点。的情况下观察到的圆柱体轻微倾斜。
检查任意方向圆柱内任意点的算法如下。设为连接中心和任意点的向量,且对于方向向量在其上 的投影为 因此,垂直向量为 对于长度为、半径的圆柱体,检查
实际问题: 上述算法是在 Fortran 中实现的。如果在圆柱体内,代码会检查笛卡尔网格中的点。以下是测试用例:圆柱在 yz 平面上相对于 y 轴因此,方向向量为 (0, 1, 0)。
情况 2:
方向向量是用具有双精度精度的内在 Fortran 函数和dsin\指定的,其中值指定为超过 20 位有效小数点。由此产生的圆柱体导致轻微倾斜。dcos
突出显示的区域表示由于圆柱体相对于笛卡尔轴倾斜而产生的额外材料。我还尝试了架构特定的最大精度“pi”值。这也会导致同样的问题。
这表明圆柱体的实际角度不是。任何人都可以为这个问题提出有效的解决方案。我需要对任意角度使用内置三角函数并寻找准确的单元格标记方法。
注意:所有操作均以双精度精度执行。
