C语言实现同步画圆画方

目录

  • 实现
  • 源程序
  • 测试
  • 总结

实现

1.图形库安装

实现画圆画方,需要图形库,这里选择easyx,安装使用较为简单快捷。在网上下载easyx官方安装文件,直接选择Visual C++ 2019,即可安装完毕,在VS中我就可以使用该图形库。
C语言实现同步画圆画方_第1张图片

2.编写所需头文件

#include
#include
#include
#include

3.初始化easyx图像窗口

initgraph(840, 680);

4.创建两个线程

hThread[0] = CreateThread(NULL, 0, Draw1, 0, 0, &threadID);
hThread[1] = CreateThread(NULL, 0, Draw2, 0, 0, &threadID);

5.画圆画方函数定义

画方函数:
for (int i = 0; i < 180; i++)
{
     
		putpixel(50 + i, 50, WHITE);
		Sleep(10);
}
画圆函数:
for (int i = 0; i < 720; i++)
{
     
putpixel(350 + 90 * cos(-pi / 2 + (double)((i * pi) / 360)), 140 + 90 * sin(-pi / 2 + (double)((i * pi) / 360)), WHITE);
		Sleep(10);
}

Sleep函数S大写时括号内为毫秒单位,s小写时括号内为秒单位
putpixel函数第一个参数为x坐标,第二个参数为y坐标,最后一个参数为颜色

6.关闭视窗编写

closegraph();

源程序

#include
#include
#include
#include
#define pi  3.14

DWORD WINAPI draw1(LPVOID)
{
     
	for (int i = 0; i < 180; i++)
	{
     
		putpixel(50 + i, 50, WHITE);
		Sleep(10);
	}
	for (int i = 0; i < 180; i++)
	{
     
		putpixel(50 + 180, 50 + i, WHITE);
		Sleep(10);
	}
	for (int i = 0; i < 180; i++)
	{
     
		putpixel(50 + 180 - i, 50 + 180, WHITE);
		Sleep(10);
	}
	for (int i = 0; i < 180; i++)
	{
     
		putpixel(50, 50 + 180 - i, WHITE);
		Sleep(10);
	}
	return 0;
}

DWORD WINAPI draw2(LPVOID)
{
     
	for (int i = 0; i < 720; i++)
	{
     
		putpixel(350+100*cos(-pi/2+(double)((i*pi)/360)), 140 + 100*sin(-pi / 2 + (double)((i*pi)/360)), WHITE);
		Sleep(10);
	}
	return 0;
}
int main()
{
     
	initgraph(840, 680);
	HANDLE hThread[2];
	DWORD threadID;
	hThread[0] = CreateThread(NULL, 0, draw1, 0, 0, &threadID);
	hThread[1] = CreateThread(NULL, 0, draw2, 0, 0, &threadID);
	getchar();
	closegraph();
	return 0;
}

测试

C语言实现同步画圆画方_第2张图片
C语言实现同步画圆画方_第3张图片


总结

本文简单实现了画圆画方的并行操作。
有任何问题都可以在评论区和我交流~~

你可能感兴趣的:(操作系统,操作系统,多线程,c#)