我如何只能在平局时显示鼠标坐标?

时间:2016-12-10 03:12:58

标签: c# winforms graphics

如果我已经绘制了像11111111111111111111111111111111 00000000000000000000000000000000 10000000000000000000000000000000 01000000000000000000000000000000 11000000000000000000000000000000 00100000000000000000000000000000 10100000000000000000000000000000 这样的函数,那么只有当鼠标位于函数行上时才能显示鼠标坐标?

1 个答案:

答案 0 :(得分:0)

据推测,您通过计算值并绘制曲线绘制了sin(x)的曲线。因此,当x = 27时,y将是某个已知值。您绘制了曲线,并在窗口的某个sin(0)坐标处绘制了x,y。屏幕上的角度xx坐标之间以及屏幕上的sin(x)y坐标的结果之间存在一些映射。

例如,假设您为0到180之间的所有值生成了sin(x)的值。结果的范围是-1到+1。你有这个映射:

xCoordinate = (int)(2*x);
yCoordinate = (int)((100*y) + 200);

现在,如果要查看鼠标是否在曲线上,则需要将鼠标的当前x坐标转换回角度。你可以通过扭转你的翻译来做到这一点:

x = xCoordinate/2;

现在,再次计算sin(x)并使用转换来确定y坐标。将结果与鼠标的当前y坐标进行比较。如果他们是平等的,那么你就在曲线上。

我使用强制转换为int的原因是因为否则您将获得小数值,鼠标坐标始终为整数。因此,y坐标的计算可能会为sin(45)提供270.71。当你绘制它时,它将被截断为270.