hust操作系统原理实验:4.5(实验目的:熟悉Window线程创建过程)在windows环境下,利用高级语言编程环境(限定为VS环境或VC环境)调用CreateThread函数实现“并发地画圆和画方”。圆的中心,半径,颜色,正方形的中心,边长,颜色等参数自己确定,合适就行。圆和正方形的边界上建议取720个点。为直观展示绘制的过程,每个点绘制后睡眠0.2秒~0.5秒。

c++本身没有绘图的库,所以我用的easyx,可以去官网下载这个库,并把相应文件添加到所用ide的include和lib里。

#include<graphics.h>
#include<stdio.h>
#include<Windows.h>
#include<math.h>
#define pi  3.1415926535897932//定义画方的线程  顺时针画
DWORD WINAPI drawSquare(LPVOID)
{//分为720个点 180*4   for (int i = 0; i < 180; i++){putpixel(50 + i, 50, RED);Sleep(50);}for (int i = 0; i < 180; i++){putpixel(50 + 180, 50 + i, RED);Sleep(50);}for (int i = 0; i < 180; i++){putpixel(50 + 180 - i, 50 + 180, RED);Sleep(50);}for (int i = 0; i < 180; i++){putpixel(50, 50 + 180 - i, RED);Sleep(50);}return 0;
}//定义画圆的函数
DWORD WINAPI drawCircle(LPVOID)
{//同样分为720个点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)), GREEN);Sleep(50);}return 0;
}
int main()
{// 初始化图形模式initgraph(640, 480);HANDLE hThread[2];//记录新线程句柄DWORD threadID;//记录线程IDif ((hThread[0] = CreateThread(NULL, 0, drawSquare, 0, 0, &threadID)) == NULL){printf("线程创建失败!");}if ((hThread[1] = CreateThread(NULL, 0, drawCircle, 0, 0, &threadID)) == NULL){printf("线程创建失败!");}//等待所有线程结束WaitForMultipleObjects(2, hThread, TRUE, INFINITE);CloseHandle(hThread[0]);CloseHandle(hThread[1]);getchar();// 关闭图形模式closegraph();return 0;
}

在vs2019环境下编译成功,而在dev-c++下编译不通过。

Windows下并发地画圆和画方相关推荐

  1. 操原上机(二) 并发地画圆和画方

    实验内容 在 windows 环境下,利用高级语言编程环境(限定为 VS 环境或 VC 环境) 调用CreateThread 函数实现"并发地画圆和画方".圆的中心,半径,颜色,正 ...

  2. Python+OpenCV 图像处理系列(3)—— 画线、矩形、画圆、画椭圆、画多边形

    OpenCV 中的绘图函数 使用 OpenCV 绘制不同几何图形,其中包括的函数有 cv2.line() cv2.circle() cv2.rectangle() cv2.ellipse() cv2. ...

  3. Android 自定义view 图片编辑(画圆,画长方形,手势缩放)

    Android 自定义view 图片编辑(画圆,画长方形,手势缩放) package com.bridgetek.yqm.view; import android.annotation.Suppres ...

  4. java左手画圆右手画方_左手画圆右手画方900字作文

    左手画圆右手画方900字作文 圆,亦始亦终,柔曲多变. 方,公平公正,有棱,有角,有个性. 方与圆,不只是形状,亦是两种性格,两种态度,两种人生. 方的人脾气耿直,公正严苛: 圆的人机智多变,善于处世 ...

  5. opencv画圆和画椭圆的联合作战

    效果图如上: # 画圆和画椭圆的联合作战 WINDOW_WIDTH = 200 #定义窗口大小 def DrawDilledCircle(img,center):thickness = -1lineT ...

  6. (重点)C#/Csharp桌面应用开发小作业小程序,测距仪,画圆,GDI画圆,画直线,绘制圆,绘制直线,绘制虚线,dashpattern的应用

    简介 这次试验具有一定难度,因为我们对于C#得画板接触得比较少,但是我认为老师很可能在考试的时候在这上面大出文章,所以这个实验我会详细的解析C#的GDI+ 首先,我们要画图形,就要调用Paint方法, ...

  7. java左手画圆右手画方_左手画圆,右手画方作文

    左手画圆,右手画方作文 无论是在学校还是在社会中,大家都经常接触到作文吧,作文是从内部言语向外部言语的过渡,即从经过压缩的简要的.自己能明白的语言,向开展的.具有规范语法结构的.能为他人所理解的外部语 ...

  8. java左手画圆右手画方_左手画圆,右手画方真的很难吗?为什么人们很难做到呢?...

    导语:左手画圆,右手画方真的很难吗?为什么人们很难做到呢? 我们经常会看到有些人能够实现左手画圆.右手画方的这一个行为,并且是可以通过这样的方式来训练自己身体的协调能力的,那么当我们自己去尝试的时候, ...

  9. java左手画圆右手画方_左手画圆,右手画方,有两个截然不同的说法,你知道吗?...

    说到金庸先生的武侠小说,其中对于中国古典传统文化的引用,神乎其技.小说中的各种武侠招式,我们都可以从古典文籍中找到影子.比如丐帮帮主洪七公,传授给穆念慈的逍遥游,我们就会联想到庄子的<逍遥游&g ...

最新文章

  1. 分析UIWindow
  2. NotePad++编译代码
  3. linux qt libusb,Ubuntu15下Qt+libusb开发
  4. MPLS多协议标签交换原理—Vecloud微云
  5. Angular module加载的原理研究
  6. Springboot热部署(热部署原理)和用IDEA开发需要的配置
  7. python字符串转float_令人困惑的python-无法将字符串转换为float
  8. 排序算法基础+冒泡排序+冒泡排序的小优化
  9. UG10.0如何导出CAD图
  10. 移动警务综合应用平台(交警)解决方案
  11. Apple Compressor 4.4.4 中文特别版 Mac 电影视频后期制作工具
  12. 哈希表的应用之电话本
  13. DBA必备技能:数据库挂起时进行转储分析诊断案例
  14. 快速简单的方法,彻底解决新浪微博自动关注营销号的问题
  15. KUKA机器人视觉2
  16. promox VE各版本ISO下载及安装教程
  17. Python 爬虫 + 人脸检测 —— 知乎高颜值图片抓取
  18. 进出队C语言不用链表,C语言面试题总汇简要
  19. React 待办事项列表案例
  20. 了解SQLServer中varchar(max)、nvarchar(max)和varbinary(max)

热门文章

  1. 微信公众号开发者模式菜单不更新的问题
  2. [Transformer] EdgeViTs: Competing Light-weight CNNs on Mobile Devices with Vision Transformers
  3. 云之家宣布2017全年收款破亿 企业用户350万
  4. js中英文字符串和16进制互转
  5. go post 参数_go语言使用Swaggo详细教程
  6. 演化计算可能是人工智能的下一个热点
  7. 飞思卡尔MC9S12X:CAN驱动函数在主函数中的应用
  8. Activity之间的数据传递方法汇总系列教学
  9. 深交所改交易规则 涨停板敢死队受监控
  10. php查询后并导出excel,PHP如何将查询结束导出Excel