gpt4 book ai didi

c - 如何在 C 中使用 putpixel() 时获得高帧率?

转载 作者:太空宇宙 更新时间:2023-11-04 01:58:23 24 4
gpt4 key购买 nike

我正在使用代码打印像素。

// C code

#include <graphics.h>
#include <conio.h>

int main()
{
int gd = DETECT, gm;

initgraph(&gd, &gm, "C:\\TC\\BGI");

for (int i = 0; i < 100; i++)
{
for(j = 0; j < 200; j++)
{
putpixel(i, j, GREEN);
}
}

getch();
closegraph();
return 0;
}

在此代码中使用 putpixel() 时,是否有任何方法可以使 C 编译器的响应更快?执行 putpixel() 时控制台变色的速度非常慢,所以我想知道是否有任何其他库可以用来在 Windows 系统或Linux 一个?

最佳答案

恐怕答案几乎总是“不要使用 putpixel()”。

问题是它需要大量的工作才能实现这么小的目标(一个像素的变化!),而且在你做任何有用的事情之前你必须做数万次。

在理想的世界中,您可能希望所有内容都被内联和优化到您真正需要的,但是如果 putpixel() 处理许多不同的屏幕格式(以及我记得的 BGI ,确实如此)那么这将需要极不可能的内联和循环取消切换。

你想要做的是找到一个更高级的操作,比如putimage(),或者在你的简单示例中bar(),它可以实现更多通过单个函数调用。

您可能想转向更注重性能的东西,例如 SDL,但如果您尝试对每个像素使用函数调用,您仍然会遇到相同的基本问题。

关于c - 如何在 C 中使用 putpixel() 时获得高帧率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30564933/

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