我的代码存在“小”问题,将鼠标位置转换为辐射。
我需要鼠标位置来确定机器人头部必须指向的位置。代码工作和转头......但是!它太快达到最大音高。
由于我在光度计算或C#方面并不是非常敏锐,我不得不求助于专家。 :)
我的代码:
maxcursory = Screen.PrimaryScreen.Bounds.Height;
cursory = Cursor.Position.Y;
pitch = (float) (((3 / maxcursory * cursory) - 1.5) * 1);
我需要的最小值和最大值:-0.6720到0.5149
编辑:修复代码显示错误。 ;)
编辑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);