这可能是一个简单的解决方案,只是在逃避我。具体来说,我使用sin()函数动态创建画布上的位置,用于圆上的等距点。创建这些点之后,我通过计算点之间的斜率并在每个斜率步骤重绘形状来设置从一个点移动到下一个点的形状。
问题是,根据坐标值,斜率步长可能只是从a点到b点的一步。我需要让形状沿着路径移动,而不仅仅是跳到点。
我想要做的是强制位置坐标(x,y)为偶数,允许斜率值始终可以减少。所以,问题的简单部分是......
如何检查int值是否均匀?如果不是,我只需将1添加到坐标值。
答案 0 :(得分:1)
int newNumber = someInt % 2 == 0 ? someInt : someInt + 1;
答案 1 :(得分:1)
查看整数是否为偶数:
value MOD 2 == 0
。在C风格的语言中,这通常表示为value % 2 == 0
。value BITWISE-AND 0x01 == 0
。在C风格的语言中,这通常表示为(value & 0x01) == 0
。如果你不关心你绕哪个方向,你可以在一次操作中通过取其值按位并且掩码为0xFFFE
来均匀化一个整数(当然填充到你的整数的宽度) ,这将强制将0位设置为零。这是value := value BITWISE-AND 0xFFFE
,或者是C风格的语言value &= 0xFFFE
。
答案 2 :(得分:0)
做一个mod 2。如果余数为0,则为偶数。
VB:
Dim even =(3 mod 2 = 0)
答案 3 :(得分:0)
很难给你具体细节,因为你没有给很多,但你应该看看 Modulo operation
答案 4 :(得分:0)
对于整数,使用modulo会给你正确答案,它需要除法。除法与按位运算一样快。对于你需要的东西,按位AND就足够了。
if(x & 0x1)
{
sdt::cout << "x is odd" << std::endl;
}
else
{
std::cout << "x is even" << std::endl;
}
关键是两个人的所有正面力量都是均匀的。因此,整数的二进制表示可以是奇数的唯一方法是设置第一位。