【发布时间】:2015-01-06 04:02:56
【问题描述】:
美好的一天。我正在使用具有以下配置的二次贝塞尔曲线:
起点 P1 = (1, 2) 锚点 P2 = (1, 8) 终点 P3 = (10, 8)
我知道给定一个 t,我知道我可以使用以下等式求解 x 和 y:
t = 0.5; // given example value
x = (1 - t) * (1 - t) * P1.x + 2 * (1 - t) * t * P2.x + t * t * P3.x;
y = (1 - t) * (1 - t) * P1.y + 2 * (1 - t) * t * P2.y + t * t * P3.y;
其中 P1.x 是 P1 的 x 坐标,以此类推。
我现在尝试的是,给定 x 值,我使用 wolframalpha 计算 t,然后将 t 代入 y 方程,得到我的 x 和 y 点。
但是,我想自动查找 t,然后查找 y。我有一个公式可以在给定 t 的情况下得到 x 和 y。但是,我没有基于 x 得到 t 的公式。我的代数有点生疏,扩展第一个方程以隔离 t 看起来不太容易。
有没有人有根据 x 得到 t 的公式?到目前为止,我的 google 搜索技能都失败了。
我认为我的贝塞尔曲线朝右也是值得注意的。
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
因为贝塞尔曲线不是函数,所以一个
y可以有多个x,一个x坐标可以有多个y。 -
二次贝塞尔曲线是一个(参数)函数,除非它是一条直线,否则它最多与另一条直线相交 2 个点。我在下面给出了与垂直线相交的简单解决方案(x = 常数);没用吗?