【问题标题】:How to move the scaled point and keep the shape of the curve?如何移动缩放点并保持曲线的形状?
【发布时间】:2020-09-15 06:13:21
【问题描述】:

对于曲线,我想将起点和终点移动到新的位置,然后如何保持曲线的形状?

从黄色曲线上循环的点,移动到红色曲线上循环的红色曲线位置,如何保持红色曲线上的曲线形状?

【问题讨论】:

  • 曲线是否总是水平对齐?
  • 看来红色曲线可以通过对黄色曲线进行偏移或缩放变换来获得。
  • @fang 你是对的。你有什么建议吗?
  • @TA ,不确定。起点和终点的偏移量是不确定的。
  • @fang 我想你可以帮助我。将nurbs曲线的起点和终点移动到另一个位置,如何保持新曲线的形状(类似于原点曲线)?

标签: computer-vision autocad cad nurbs opennurbs


【解决方案1】:

所以,让我总结一下你想在这里做什么:给定一条贝塞尔曲线或一条 B 样条曲线以及起点和终点的两个新位置,找到一条或多或少的新贝塞尔曲线/B 样条曲线保持与原始曲线相同的形状。

实现这一点的一种方法是找到一个可以将起点/终点变换到新位置的变换,然后您可以将相同的变换应用于曲线的所有其他控制点。基本上,这与找到由曲线的起点 P 和终点 Q 定义的线与由新点位置 P* 和 Q* 定义的另一条线之间的转换相同。从 P 和 P*,我们可以找到一个平移向量。从线 PQ 和线 PQ,我们可以找到一个旋转角度。从长度 |PO|和长度 |PQ|我们可以找到一个比例因子。因此,结合平移向量、旋转角度和比例因子,我们将能够找到变换矩阵。将变换矩阵应用于所有其他控制点,然后您应该能够获得或多或少保持与原始曲线相同形状的新曲线。

如果你真正想做的是抵消曲线,那么这是一个完全不同的故事。偏移曲线是通过更复杂的算法实现的(我不会在这里详细说明),我们将指定偏移距离(可以是正数或负数以暗示向外/向内偏移)而不是起点/终点的新位置。

【讨论】:

  • 感谢您的正确总结。实际上这是来自 CAD 软件的基本尺寸 DXF 和分级规则表文件,我想根据分级规则表将此基本尺寸 DXF 分级为全尺寸 DXF。
  • > 1.没有控制点,都是插值曲线点。控制点可以通过插值曲线点推断出来。所以我认为如果方法可能> 2,平移向量、旋转角度和比例因子将适用于插值曲线点。你说从 P 和 P*,我们可以找到一个平移向量,但是如果从 Q 和 Q*与 P 和 P* 有什么不同? > 3.X1-(X1-X2)*( lx / L) 参考 stackoverflow.com/questions/58767514/… 有点,但不是那么准确
  • @OP: 如果 vec(Q,Q*) 和 vec(P,P*) 不同,你会得到不同的平移和不同的旋转角度。这并不重要。最终,您只想找到一种方法来在曲线的起点/终点发生变化时使曲线变形,而没有人说解决方案必须是唯一的。
  • 能否介绍一下CAD软件中曲线点的变化?怎么变?
  • 我只能查看 AAA-base.dxf 而不能查看 .rul 文件。我不熟悉 .rul 文件,不知道如何查看或使用 .dxf 文件。对不起。
【解决方案2】:

当您定义样条曲线时,您还需要定义端点处的切线角度,当您将点移动到中心时,您正在改变边线的斜率,因此如果切线角度是固定的线,它们会改变曲线。如果您仔细看到两个图像上的角角度相同。为了保持曲线形状,您需要根据侧线坡度改变这些角度。

【讨论】:

  • 感谢您的回答。实际上这是来自 CAD 软件的基本尺寸 DXF 和放码规则表文件,我想根据放码规则表将此基本尺寸 DXF 放码到全尺寸 DXF。您有这种经验吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-17
  • 2017-06-03
  • 2016-08-04
  • 1970-01-01
  • 1970-01-01
  • 2013-07-29
  • 2021-12-30
相关资源
最近更新 更多