当前位置:  开发笔记 > 编程语言 > 正文

任何旋转中两个抛物线交叉的代码或公式

如何解决《任何旋转中两个抛物线交叉的代码或公式》经验,为你挑选了1个好方法。

我正在研究一个几何问题,需要在任何旋转中找到两个抛物线弧的交点.通过旋转平面以使弧与轴对齐,我能够将线和抛物线弧交叉,但是两个抛物线不能与轴对齐.我正在努力推导公​​式,但我想知道是否有资源已经可用.



1> Nils Pipenbr..:

我首先在没有旋转的2D中定义抛物线弧的方程:

  x(t) = ax² + bx + c
  y(t) = t;

您现在可以通过构建旋转矩阵来应用旋转:

  s = sin(angle)
  c = cos(angle)

  matrix = | c -s |
           | s  c |

应用该矩阵,您将获得旋转的参数方程:

x' (t) = x(t) * c - s*t;
y' (t) = x(t) * s + c*t;

这将为您提供抛物线弧的两个方程(对于x和y).

对两个旋转的圆弧执行此操作并减去它们.这给你一个这样的等式:

  xa'(t) = rotated equation of arc1 in x
  ya'(t) = rotated equation of arc1 in y.
  xb'(t) = rotated equation of arc2 in x
  yb'(t) = rotated equation of arc2 in y.
  t1 = parametric value of arc1
  t2 = parametric value of arc2

  0 = xa'(t1) - xb'(t2)
  0 = ya'(t1) - yb'(t2)

这些等式中的每一个只是2阶多项式.这些很容易解决.

要找到交点,可以求解上述等式(例如找到根).

每个轴最多可以有两个根.在x和y上相等的任何根是曲线之间的交叉点.

现在很容易获得这个位置:只需将根插入参数方程式,就可以直接得到x和y.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有