0

我的代码有一个“小”问题,将鼠标位置转换为光辉。

我需要鼠标位置来确定我的机器人的头部必须指向的位置。代码有效并且转头......但是!它过快地达到最大音高。

由于我在辐射计算或 C# 方面并不是非常敏锐,因此我必须求助于专家的帮助。:)

我的代码:

maxcursory = Screen.PrimaryScreen.Bounds.Height;

cursory = Cursor.Position.Y;

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

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

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

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

4

2 回答 2

1

因此,您想根据光标 y 位置与最大屏幕高度的比率在最小值和最大值内选择一个值?

当前对音高的计算给出了从 -1.5 到 1.5 的范围。

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

1.1869 * cursory / maxcursory -.672

或者,概括地说:

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

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

-1.1869 * cursory / maxcursory + .5149
于 2013-08-26T18:35:22.660 回答
0

看来你的*标志放错了位置

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

尝试:

pitch = (float) (((3 / maxcursory * cursory ) - 1.5) * 1);
于 2013-08-26T13:02:23.653 回答