C程序多线程同时画圆画方
生活随笔
收集整理的這篇文章主要介紹了
C程序多线程同时画圆画方
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
程序
#include<stdio.h> #include<math.h> #include<Windows.h> #include <graphics.h>//畫圓 DWORD WINAPI circle(LPVOID n) {int circlePointx = 180;int circlePointy = 180;const double degree_half = 0.008726;int R0 = 150;for (int i = 0; i < 720; i++) {putpixel(circlePointx + R0 * cos(degree_half*i), circlePointy + R0 * sin(degree_half*i), RED);Sleep(10);}return 0; }//畫方 DWORD WINAPI tangle(LPVOID n) {int circlePointx = 540;int circlePointy = 180;int R0 = 150;float factor = 1.65;float delta = 2 * R0 / 180 * factor;for (int ii = 0; ii < 180; ii++) {//upputpixel(circlePointx + R0 - delta * ii,circlePointy-R0,GREEN);Sleep(10);}for (int ii = 0; ii < 180; ii++) {//leftputpixel(circlePointx - R0, circlePointy - R0 + delta * ii, GREEN);Sleep(10);}for (int ii = 0; ii < 180; ii++) {//downputpixel(circlePointx - R0 + delta * ii, circlePointy + R0, GREEN);Sleep(10);}for (int ii = 0; ii < 180; ii++) {//rightputpixel(circlePointx + R0, circlePointy + R0 - delta * ii, GREEN);Sleep(10);}return 0; }int main() {initgraph(960, 540);HANDLE hThread[2];//創建線程,并調用函數打印輸出hThread[0] = CreateThread(NULL, 0, circle, (LPVOID)0, 0, NULL);hThread[1] = CreateThread(NULL, 0, tangle, (LPVOID)0, 0, NULL);//等待所有線程結束WaitForMultipleObjects(2, hThread, TRUE, INFINITE);//關閉進程句柄CloseHandle(hThread[0]);CloseHandle(hThread[1]);getchar();return 0; }結果
總結
以上是生活随笔為你收集整理的C程序多线程同时画圆画方的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用C语言打开文件的几种方式及区别
- 下一篇: 操作系统储存管理功能