1

我有一个 xy 坐标系

4

1 回答 1

1

在此处输入图像描述

这张图应该代表你告诉我的。关键点,是在 CS1 中表达 [x2],[y2]。(我不能在这里使用乳胶,所以我们假设 [A] 表示向量 A,|A| 是向量 A 的长度)

[v2] = v2x * [x2] + v2y * [y2]

由于我们已经很好地定义了 [v1] 和 [d2],我们可以计算 [x']

[x`] = [d2] - [v1]

从 [x'] 我们可以计算 x2

[x2] = (|x2|/|x'|) [x`] = (|x1|/|x'|) [x'] 因为 |x1| = |x2|

从 x2 我们可以计算出 y2,虽然我不记得如何了。这是一个简单的 90° 旋转。应该是这样的:

y2x = - x2y y2y = x2x

一旦我们在 CS1 中表达了 x2,y2,我们就可以计算 v2

v2 = v2x * [x2] + v2y * [y2] = v2x * (x2x*[x1]+x2y*[y1]) + v2y * (y2x*[x1]+y2y*[y1]) = (v2x x2x + v2y y2x)[x1] + (v2x x2y + v2y y2y) [y1] // 希望我没有在这里犯任何错误 :)

最后

[X] = [v1] + [v2]

我认为最好的选择是创建一个向量类并使用向量代数进行所有数学运算。您只需要定义 3 个操作:Addition、ScalarMultiplication、90Rotation。

于 2012-05-31T01:30:47.457 回答