如果我已经绘制了像11111111111111111111111111111111
00000000000000000000000000000000
10000000000000000000000000000000
01000000000000000000000000000000
11000000000000000000000000000000
00100000000000000000000000000000
10100000000000000000000000000000
这样的函数,那么只有当鼠标位于函数行上时才能显示鼠标坐标?
答案 0 :(得分:0)
据推测,您通过计算值并绘制曲线绘制了sin(x)
的曲线。因此,当x = 27
时,y
将是某个已知值。您绘制了曲线,并在窗口的某个sin(0)
坐标处绘制了x,y
。屏幕上的角度x
和x
坐标之间以及屏幕上的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.