如何缩放2D矢量(半径),保持其角度

时间:2015-04-19 18:44:16

标签: c# wpf vector

如何将任意长度的径向矢量更改为某个固定长度矢量(半径长或1长),仅保留其角度? 给出的是鼠标光标X,Y; radius是一个已知的常数。

我的问题是 - 我有一个鼠标拖动拨盘控制,我需要输出角度,如果是顺时针0到360,如果是逆时针,从0到-360,从鼠标点击或旋转方向改变时刻开始。 为了使其完全按照我的要求工作 - 它需要考虑仅在其圆形表盘周围移动鼠标,必须忽略鼠标移动/到圆心。

要有 - 我需要使用Vector.AngleBetween和Vector.CrossProduct,但是: 参数向量必须具有相同的长度。如何使它们长度相同?

1 个答案:

答案 0 :(得分:0)

您可以使用Vector.Normalize()方法获取长度为1的向量。

  

标准化向量保持其方向但其长度变为1。   得到的矢量通常称为单位矢量。矢量是   通过将矢量除以其自身的长度来归一化。

顺便说一句,静态Vector.AngleBetween()方法不要求两个作为参数提供的向量具有相同的长度。