路径值反求(给定交点或者点的坐标,求其在曲线上路径值)
geogebra吧
全部回复
仅看楼主
level 11
有时候我们需要把曲线与其它图形的交点在曲线上对应的路径值求出来,或者对样条曲线控制点反求t值,这个在GeoGebra中,是不能直接用"路径值"这个命令的,因为你给出的点只是恰好落在曲线上,并不是路径上的点,但我们可以作变通,使用如下命令可以直接获取点的路径值:
路径值(最近点(曲线, 给定点))
现举例如下:
g(x) = x²
G = (-1.79728, 0.3667)
H = (2.00135, 1.44022)
h: 直线(G, H)
J = 交点(g, h)
I = 交点(g, h)
显然,交点I、J是不能直接使用“路径值命令的”,因为它不是定义在曲线g(x)上,只是计算后得到的点,我们用如下命令:
i = 路径值(最近点(g, I))
K = 描点(g, i)
j = 路径值(最近点(g, J))
L = 描点(g, j)
用K、L替换两个交点,就实现使交点在路径上了,K、L与两交点是分别相等的。
再研究一下样条曲线控制点反求,然后我们对样条曲线分段,有人可能会说,样条曲线参数方程不是给出了各点路径值了吗?但我们怎么自动获取呢?如果样条曲线控制点本身就是动态的,更不容易获取,因此,我们还是采用上上述方法,注意一点的是,样条曲线求t值与求路径值是等价的。
A = (-0.68797, -0.60429)
B = (-0.26407, 0.36463)
C = (1.01522, 0.31164)
D = (1.09091, -0.29393)
E = (2.18095, -0.63457)
F = (2.72597, 0.26623)
l1 = {A, B, C, D, E, F}
a = 样条曲线(l1, 3)
l2 = 映射(路径值(最近点(a, M)), M, l1)
如上,我们一次性地求出了各控制点A、B、C、D、E、F在曲线上的t值(或者路径值)。
l3 = 序列(曲线(a(t), t, l2(i), l2(i + 1)), i, 1, 长度(l1) - 1)
b = 元素(l3, 1)
c = 元素(l3, 2)
d = 元素(l3, 3)
e = 元素(l3, 4)
f = 元素(l3, 5)
(当然,列表l3我们可以配合表格功能,自动放入表格中,实现分段曲线单独提取)。
2021年02月20日 01点02分 1
level 11
总结:求给定点在曲线上的路径值,我们用曲线上最近点代替给定点就行了,如果给定点恰好落在曲线上,最近点与给定点距离为零。求出来的最近点,它是路径上的点,因此有路径值。如上边抛物线的交点,其实我们可以直接给出K、L点:
K=(最近点(g, I)
L=(最近点(g, J)
上边操作只是突出路径值计算和使用。
2021年02月20日 02点02分 3
1