我正在研究几何问题,需要找到任何旋转中的两个抛物线弧的交点。通过旋转平面使弧线与轴线对齐,我能够将线条和抛物线弧线合并,但是两个抛物线不能与轴线对齐。我正致力于推导公式,但我想知道是否有可用于此的资源。任何旋转中两个抛物线相交的代码或公式
5
A
回答
6
我首先定义公式在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。
1
不幸的是,一般的答案需要解四阶多项式。如果我们转换坐标使得两个抛物线中的一个处于标准形式y = x^2,那么第二个抛物线满足(ax + by)^ 2 + cx + dy + e == 0。要找到交集,同时解决两个问题。代入y = x^2,我们看到结果是一个四阶多项式:(ax + bx^2)^ 2 + cx + dx^2 + e == 0。因此Nils解决方案将不起作用(他的错误:每个变量都是分别在每个变量中的二阶多项式,但是它们不在一起)。
1
如果您手边有CAS,很容易。
请参阅Mathematica中的解决方案。
选择一个抛物线并更改坐标,使其方程变为y(x)= a x^2(标准形式)。
其他抛物线将具有通用形式:
A x^2 + B x y + CC y^2 + DD x + EE y + F == 0
where B^2-4 A C ==0 (so it's a parabola)
让我们解决一个数字的情况下:
p = {a -> 1, A -> 1, B -> 2, CC -> 1, DD -> 1, EE -> -1, F -> 1};
p1 = {[email protected]@Reduce[
(A x^2 + B x y + CC y^2 + DD x + EE y +F /. {y -> a x^2 } /. p) == 0, x]}
{{X - > -2.11769},{X - > -0.641445}, {x - > 0.379567- 0.76948}, {x - > 0.379567 + 0。76948 I}}
我们绘制它:
Show[{
Plot[a x^2 /. p, {x, -10, 10}, PlotRange -> {{-10, 10}, {-5, 5}}],
ContourPlot[(A x^2 + B x y + CC y^2 + DD x + EE y + F /. p) ==
0, {x, -10, 10}, {y, -10, 10}],
Graphics[{
PointSize[Large], Pink, Point[{x, x^2} /. p /. p1[[1]]],
PointSize[Large], Pink, Point[{x, x^2} /. p /. p1[[2]]]
}]}]
一般的解决方法包括计算的根:这是在任何CAS轻松完成
4 A F + 4 A DD x + (4 A^2 + 4 a A EE) x^2 + 4 a A B x^3 + a^2 B^2 x^4 == 0
。
相关问题
- 1. 在3D引擎中与旋转飞机相交的抛物线
- 2. 在MATLAB中绘制*旋转*抛物线
- 3. 模拟抛物线抛物线轨迹的C代码提前终止
- 4. 如何找到对象的抛物线公式?
- 5. 两个相撞的圆圈,无法将公式转换成代码
- 6. C++中的翻转抛物线
- 7. 旋转代码
- 8. 如何用相机旋转物体three.js
- 9. 如何找到两个相反的法线或两个线段?
- 10. 如何公式转换为TLA +代码
- 11. 如何将交易相关代码转换为非交易相关代码?
- 12. 围绕物体旋转相机vs围绕其中心旋转物体
- 13. java代码重写两个旋转器在相同的布局和活动?
- 14. 物体旋转后的相机
- 15. 公制比较如何相似的两个二维线性线
- 16. 公式两列中任意两个值之间的最大差异公式
- 17. 如何旋转相机 - 相机旋转
- 18. 抛物线曲线和线段的交点
- 19. CSS 2个旋转物体
- 20. 确定是否两条线段的公差相交
- 21. 物体不能绕其轴线旋转
- 22. SceneKit相机围绕物体旋转
- 23. opengl相机围绕物体旋转
- 24. 检查直线和旋转矩形之间的相交处
- 25. 如何绘制抛物线
- 26. 在Cannon.js中定位一个物体相对于局部旋转
- 27. 如何对齐轴线中的R,使得两个轴相交
- 28. NVIDIA GPU汇编代码(SASS)中的线程ID旋转
- 29. 两个集合中的任何交集
- 30. 图形抛物线
如何在C++中解决这个方程组(因此不用内置的Matlab函数) http://math.stackexchange.com/questions/1894043/solve-squared-non-linear-system-with-two -Equations – 2016-08-16 14:43:33