更新鼠标 X 和鼠标 Y 变量



在对分配 mouseX 和 mouseY 的变量执行操作后,我在更新鼠标位置时遇到了问题。

def setup():
size(500,500)
def draw():
background(255,255,255)
noStroke()
fill (0,0,0)
a1 = mouseX
b1 = mouseY
print a1
a1 = a1*(4/500) - 2 #trans to [-2,2]
b1 = b1*(4/500) - 2
print a1

当我打印 a1 时,我打印的第一个值更新了,但第二个值没有。因此,如果我将鼠标位置移动到 (250,250(,我得到 250 作为第一个输出,-2 作为我的第二个值。我对python不太熟悉,因为我从未真正学习过它,而且我一直在寻找方法但找不到。请帮忙。谢谢

我对Python一无所知,但是在常规处理(基本上只是Java(中,int值不能保存小数位。如果您尝试在int值中存储小数位,则只需切掉小数部分即可截断小数位。

以下是一些示例:

int x = 3 / 2; // 1.5 is truncated so x is just 1
int y = 1 / 2; // 0.5 is truncated so y is just 0

现在,让我们将代码拆分为多个步骤。它可能看起来像这样:

int multiplier = 4 / 500;
a1 = a1 * multiplier;
a1 = a1 - 2;

希望你能看到4 / 500被截断了,所以它只是0.然后当你把它乘以a,你会得到0。然后你减去2,所以最终结果是-2

你应该养成将代码拆分为多个步骤的习惯,这样你就可以更轻松地调试代码。

现在,要解决此问题,您需要使用允许小数位的float变量。由于您使用的是文字(4500都是文字(,因此您可以执行以下操作:

a1 = a1 * (4.0 / 500.0) - 2

现在这段代码使用4.0500.0,所以结果是包含小数部分0.008的。然后,其余的计算将按预期方式工作。

根据处理类型的工作方式,您可能还可以执行以下操作:

a1 = a1 * 4/500 - 2

如果a1已经是一个float值,那么这将起作用,因为首先计算a1 * 4,结果是一个float,其余部分应该按您的预期工作。但这只有在a1已经是float的情况下才有效。

您还应该尝试在谷歌上搜索"python intdivision"以获取大量结果。

相关内容

最新更新