2

我可以从 Arc 获得一些信息。

  • 第一点 [x, y, z]
  • 最后点 [x, y, z]
  • 中心 [x, y, z]
  • axis [x, y, z] # 垂直于平面

如何获得 FirstPoint&LastPoint 的切线方向向量?

我想从两个方向向量中得到一个交点。

我在 FreeCAD 工作。

4

3 回答 3

1

圆弧从AB具有中心M和法线向量N

切线方向可以通过叉积得到。

  • 相切于AN x (A-M)
  • 相切于B(B-M) x N

两者都对应于半径矢量绕轴旋转 90 度或 -90 度N

于 2016-09-09T10:22:19.680 回答
1

我们需要更多信息才能给出一个好的答案,但这是第一次尝试,后面有问题。

近似切线向量的一种方法是使用割线向量:如果您的曲线作为 t 的函数以参数方式给出,并且您想要 t_0 处的切线,则选择一些小的数字 e;在 t_0 + e 和 t_0 - e 处评估函数;然后将两个结果相减得到正割向量。如果您的曲线在 t 附近的那个区间内不太弯曲,这将是切线向量的一个很好的近似值。

现在回答问题。你的问题与 Python 有什么关系,FreeCAD 是从哪里来的?您已经在 FreeCAD 中构建了曲线,并且想要在 Python 中计算切线?你能说一下曲线吗,比如它是否是三次样条曲线,是否只在一个方向上弯曲,你所说的“中心”和“轴”是什么意思?(具有切向量的任意曲线不一定是三次样条曲线,可能以非常复杂的方式弯曲,并且没有任何中心或轴的概念。)

于 2016-09-09T04:04:39.283 回答
0

s.曲线

Circle (Radius : 1, Position : (0.335157, 11.988, 5.55452), Direction : (-0.914329, -0.257151, 0.312851))

s.Vertex1.Point #FirstPoint

Vector (0.7393506936636021, 11.360676836326173, 6.220155663200929)

s.Vertex2.Point #LastPoint

Vector (0.3602513339713556, 12.723079925995924, 6.232050903393676)

s.Curve.FirstParameter

0.0

s.Curve.LastParameter

6.283185307179586

这是一个简单的弧线。

于 2016-09-09T05:34:11.350 回答