在无限长圆柱体的曲率周围环绕点网格

计算科学 计算几何
2021-12-15 05:27:53

我有一个无限长的圆柱体定义使用

  • 半径
  • 3d 中的一个点
  • 使用 3d 矢量定义的轴

我有一组放置在网格中的 3d 坐标点。

我想将这个点网格包裹在我的圆柱体的曲率周围。怎么做

2个回答

您似乎正在尝试网格点投影到圆柱表面上。您可以通过一些矢量投影来做到这一点。

  1. r为圆柱半径
  2. P为网格点。
  3. a为圆柱轴单位向量。
  4. 项目P沿_

     P a = (P · a) * a
    
  5. 计算垂直于轴的网格点的投影

     P  = P - P a 
    
  6. 计算垂直投影的单位向量

     p  = P  / ||P  ||
    
  7. 计算网格点在圆柱体上的投影

     P cyl = P a + r * p  
    

P cyl是您想要的值。为每个网格点计算它。

基本上,您正在向上移动圆柱体轴,直到到达该方向的网格点,然后向网格点移动,直到碰到圆柱体,然后停止。

首先将圆柱体放置在某个标准位置可能是最简单的,例如,基于xy-平面和轴沿z,生成点网格为(rcosθ,rsinθ,z),然后平移和旋转两个圆柱体并指出它应该驻留的位置:


          圆柱网格