【问题标题】:How to calculate start angle and end angle in 3D ARC for DXF file?如何计算 DXF 文件的 3D ARC 中的起始角度和结束角度?
【发布时间】:2020-11-13 20:21:13
【问题描述】:

不确定这是否是问这个问题的正确地方,但我可以看到很多 DXF 查询在这里得到了解决。

我有三个 3D 点(P1 ; P2 ; P3 )我必须生成一个 3D ARC 并将其存储在 DXF格式。到目前为止,我能够为中心(代码:10,20,30)、半径(代码:40)、拉伸向量(代码:210、220、230)生成坐标。但无法找到或开发弧的开始角度和结束角度的数学(代码:50、51)。

请帮助我理解为 ARC 生成起始角和结束角背后的数学原理。

【问题讨论】:

  • 你使用什么编程语言?
  • Javascript,但我可以支持任何语言。

标签: math autocad coordinate-transformation dxf


【解决方案1】:

ARC 实体的开始和结束角度(分别为 DXF 组 50 和 51)定义为从弧的对象坐标系 (OCS) 的 x 轴逆时针测量的度数。

OCS 用于定义平面实体的坐标系,它本身是通过将Arbitrary Axis Algorithm 应用于实体的法线/拉伸向量(DXF 组 210)来定义的。

给定一个挤压向量 N = (Nx, Ny, Nz) 和世界坐标系 (WCS) 轴向量:

Wx = (1, 0, 0)
Wy = (0, 1, 0)
Wz = (0, 0, 1)

OCS 轴向量(Ox, Oy, Oz) 定义如下(其中^ 是叉积):

if abs(Nx) < 1/64 and abs(Ny) < 1/64 then
    Ox = Wy ^ N
else
    Ox = Wz ^ N
end if
Oy = N ^ Ox
Oz = N

在计算Ox 时,起始角度将是由圆弧中心 + Ox 与圆心 + 圆弧第一个点定义的向量之间的角度。这个角度可以用这两个向量的点积来计算。

【讨论】:

    猜你喜欢
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多