【发布时间】:2013-07-10 09:31:34
【问题描述】:
给定以下系统:
地点:
-
A:存在于 xz 平面上半径为r的圆的边缘上任意位置的点。 -
θ:正 x 轴与从原点到点A的向量之间的角度。范围应为 -PI/2 到 PI/2。 -
B1:圆与正 x 轴的交点,高度为h1。 -
B2:圆与正 z 轴的交点,高度为h2。 -
d1:B1和A之间的距离。 -
d2:B2和A之间的距离。
假设:
-
h1、h2和r是已知常量。 -
d1和d2是已知变量。
如何找到θ?
这最终将在嵌入式系统中用 C 语言实现,在该系统中,arctan2、sine 和 cosine 具有相当快的功能。因此,性能绝对是重中之重,如果估计正确到小数点后 3 位(这就是我的三角函数的准确度),就可以使用估计。
但是,即使给出了一个数学算法,我相信我可以制定出具体的实现。
对于它的价值,我已经做到了:
(d1^2 - h1^2) / r = (sin(θ))^2 + (cos(θ))^2
(d2^2 - h2^2) / r = (sin(PI/4 - θ))^2 + (cos(PI/4 - θ))^2
在我意识到这之前,从数学上讲,这方式超出了我的范围。
【问题讨论】:
标签: c geometry triangulation