gpt4 book ai didi

c++ - 如何在屏幕周围生成随机像素?

转载 作者:行者123 更新时间:2023-11-27 23:37:00 25 4
gpt4 key购买 nike

我正在设置我的新代码,但我遇到了代码问题。该框始终位于屏幕的左上角。

让我解释一下代码。r 需要在屏幕周围生成随机位置。r + 256 指定动画像素大小 ( 256 ) 正在创建一个框。RGB 只是盒子的颜色。

我该怎么做才能在屏幕周围的随机位置生成方框?

我试着玩弄代码,更改变量等。

int main() 
{

int r = rand() % 400;
HDC hdc = GetDC(GetDesktopWindow());

while (true)
{
srand(time(NULL));
srand(GetTickCount64());
for (int x = r; x < r + 256; x++)
for (int y = r; y < r + 256; y++)
SetPixel(hdc, x, y, RGB(127, x % 256, y % 256));
}
return 0;
}

我没有收到任何错误。

最佳答案

int r = rand() % 400; 仅计算一次,每次启动程序时随机数生成器的起点(“种子”)相同。
因此,r 始终具有相同的值。

调用srand不会更新r;它为 rand 的后续使用设置了种子。

你需要

  • 每次你想要一个不同的数字时生成一个新的随机数,
  • 只为随机数生成器播种一次,之前使用rand

所以,

int main() 
{

srand(time(NULL));
HDC hdc = GetDC(GetDesktopWindow());

while (true)
{
int r = rand() % 400;
for (int x = r; x < r + 256; x++)
for (int y = r; y < r + 256; y++)
SetPixel(hdc, x, y, RGB(127, x % 256, y % 256));
}
return 0;
}

关于c++ - 如何在屏幕周围生成随机像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58553753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com