从 2 点、圆弧角和平面法线计算圆心 (3D)

Calculate circle center (3D) from 2 point, arc angle and plane normal

我需要从 2 点 (3D) 和弧角(平面法线也已知)计算 3D 圆心点。

我用 Google 搜索了它,但我认为我的英语不够好,无法正确搜索。有人知道这样做的计算方法吗?

我们有点 A, B、法线 N、角度 Fi

计算差向量(圆弧弦)和中点

AB = B - A
M = (A + B) / 2

使用向量积计算垂直于 ABN 的向量 F 并将其归一化

F = AB x N
uF = F / len(F)

我们知道圆心 C 位于点 M 方向 F 的射线上(参数 t 等于中轴 CM 长度(中心弦距))

C = M + t * uF

t 值应该是多少?我们可以通过直角三角形AMC参数

表示t
 tan(Fi/2) = 0.5*len(AB) / t

所以最后中心是

C = M + uF * 0.5*len(AB) / tan(Fi/2)

注意圆心C不是唯一的,因为我们不知道圆弧的方向(只需要在上一个公式uF之前改变符号,得到对弦的镜像点C'