C#将鼠标位置转换为弧度

时间:2013-08-26 12:58:33

标签: c# math nao-robot

我的代码存在“小”问题,将鼠标位置转换为辐射。

我需要鼠标位置来确定机器人头部必须指向的位置。代码工作和转头......但是!它太快达到最大音高。

由于我在光度计算或C#方面并不是非常敏锐,我不得不求助于专家。 :)

我的代码:

maxcursory = Screen.PrimaryScreen.Bounds.Height;

cursory = Cursor.Position.Y;

pitch = (float) (((3 / maxcursory * cursory) - 1.5) * 1);

我需要的最小值和最大值:-0.6720到0.5149

编辑:修复代码显示错误。 ;)

编辑2:添加了最小值和最大值

2 个答案:

答案 0 :(得分:1)

所以你想根据光标y位置与最大屏幕高度的比率在你的最小值和最大值中选择一个值?

当前的音高计算范围为-1.5到1.5。

对于介于-.6720和.5149之间的范围,请使用:

1.1869 * cursory / maxcursory -.672

或者,概括:

(rangeEnd-rangeStart)*(cursory / maxcursory) + rangeStart

修改:我认为您知道这一点,但以防万一,Cursor.Position.Y将屏幕顶部视为0,将底部视为高度相同。因此,如果您希望屏幕顶部的值为.5149,底部为-.672,则您的范围开始和结束将分别为.5149和-.672。

-1.1869 * cursory / maxcursory + .5149

答案 1 :(得分:0)

您的*标志似乎处于错误的位置

pitch = (float) (((3 / maxcursory cursory *) - 1.5) * 1);

尝试:

pitch = (float) (((3 / maxcursory * cursory ) - 1.5) * 1);