为c语言安装easyx图形库

按照图上的步骤,安装easyx图形库。

 接下来看代码:

#include<easyx.h>
#include<stdio.h>
#define width 800
#define height 600int main()
{initgraph(width, height);       // 初始化窗口(宽度, 高度) (单位像素)setorigin(width/2, height/2);   // 设置逻辑原点为窗口中心setaspectratio(1, -1);          //  设置xy坐标轴(x:1,y:-1)代表y翻转, x不动circle(0, 100, 100);            // 画一个圆(x:0,y:100的位置,半径为100)getchar();                      //阻断一下程序,防止窗口一闪而过。closegraph();                   // 关闭窗口return 0;
}

物理坐标在窗口的左上角是0,0的位置,但是我们使用的是逻辑坐标,所以要设置逻辑坐标原点的位置:setorigin(width/2, height/2);   // 设置逻辑原点为窗口中心

之后的x方向是从左向右的,y的方向是从上到下的,不符合我们上学是的看图策略,y方向要从上到下,所以要设置y轴方向:setaspectratio(1, -1);          //  设置xy坐标轴(x:1,y:-1)代表y翻转, x不动。

接下来就是画圆了:circle(0, 0, 100);            // 画一个圆(x:0,y:0的位置,半径为100)如下图所示:

 

 

下面是画4个点:

#include<easyx.h>
#include<stdio.h>
#define width 800
#define height 600int main()
{initgraph(width, height);            // 初始化窗口(宽度, 高度) (单位像素)setorigin(width / 2, height / 2);    // 设置逻辑原点为窗口中心setaspectratio(1, -1);               //  设置xy坐标轴(x:1,y:-1)代表y翻转, x不动putpixel(100,100, RED);              //画一个点(x:100, y:100, 红色)putpixel(100, -100, YELLOW);         //画一个点(x:100, y:-100, 黄色)putpixel(-100, -100, GREEN);         //画一个点(x:-100, y:-100, 绿色)putpixel(-100, 100, BLUE);           //画一个点(x:-100, y:100, 蓝色)getchar();closegraph();return 0;
}

根据上面的学习,接下来绘制1000个随机的点:

#include<easyx.h>
#include<stdio.h>
#define width 1200      // 窗口宽度
#define height 960      // 窗口高度
#include<time.h>int main()
{srand((unsigned int)time(NULL));initgraph(width, height);            // 初始化窗口(宽度, 高度) (单位像素)setorigin(width / 2, height / 2);    // 设置逻辑原点为窗口中心setaspectratio(1, -1);               //  设置xy坐标轴(x:1,y:-1)代表y翻转, x不动int i = 0;for (i = 0; i < 1000; i++)      // 绘制1000个点,位置随机{int x = rand() % (width + 1) - width / 2;int y = rand() % (height + 1) - height / 2;putpixel(x, y, GREEN);              //画一个点(x:100, y:100, 红色)}putpixel(100, -100, YELLOW);         //画一个点(x:100, y:-100, 黄色)putpixel(-100, -100, GREEN);         //画一个点(x:-100, y:-100, 绿色)putpixel(-100, 100, BLUE);           //画一个点(x:-100, y:100, 蓝色)getchar();closegraph();return 0;
}

 line(起点x,起点y,终点x,终点y):

画线:

#include<easyx.h>
#include<stdio.h>
#define W 900    //  窗口宽度
#define H 600    //  窗口高度int main()
{initgraph(W, H);setaspectratio(1,-1);setorigin(W / 2, H / 2);line(-200, 200, 200, -200);   // 从坐标-200, 200  到坐标200, -200画一条线getchar();closegraph();return 0;
}

 接下来用画圆函数,画一个靶心:

#include<easyx.h>
#include<stdio.h>
#define W 900
#define H 700int main()
{initgraph(W, H);setorigin(W/2,H/2);setaspectratio(1, -1);int i = 0;for (i = 10; i <= 300; i += 10){circle(0, 0, i);}getchar();closegraph();return 0;
}

 接下来学习绘制矩形函数:

rectangle(左上角x坐标,左上角y坐标,右下角x坐标,右下角y坐标)

 

#include<easyx.h>
#include<stdio.h>
#define W 800
#define H 600int main()
{initgraph(W, H);setorigin(W / 2, H / 2);setaspectratio(1, -1);rectangle(-200, 200, 200, -200);getchar();closegraph();return 0;
}

 下面学习绘制椭圆函数:

ellipse(左上角x坐标,左上角y坐标,右下角x坐标,右下角y坐标)

 

#include<easyx.h>
#include<stdio.h>
#define W 800
#define H 600int main()
{initgraph(W, H);setorigin(W / 2, H / 2);setaspectratio(1, -1);ellipse(-200, 100, 200, -100);getchar();closegraph();return 0;
}

 下面学习绘制圆角矩形:

 圆角矩形的四个圆角实际上是由4个椭圆构成的:

 

#include<easyx.h>
#include<stdio.h>
#define W 800
#define H 600int main()
{initgraph(W, H);setorigin(W / 2, H / 2);setaspectratio(1, -1);roundrect(-200, 100, 200, -100, 200, 100);getchar();closegraph();return 0;
}

 

 绘制扇形函数:

 

 

#include<easyx.h>
#include<stdio.h>
#define W 800
#define H 600
#define PI 3.14int main()
{initgraph(W, H);setorigin(W / 2, H / 2);setaspectratio(1, -1);pie(-200, 100, 200, -100, 0, PI/4);getchar();closegraph();return 0;
}

绘制圆弧函数:

#include<easyx.h>
#include<stdio.h>
#define W 800
#define H 600
#define PI 3.14int main()
{initgraph(W, H);setorigin(W / 2, H / 2);setaspectratio(1, -1);arc(-200, 100, 200, -100, 0, PI / 4);getchar();closegraph();return 0;
}

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/31827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SAS-proc transpose转置

一、语法 by&#xff1a;纵向变量&#xff0c;不转置&#xff0c;保留的变量&#xff0c;by使用需要先排序。 id&#xff1a;需要转置的变量。 var&#xff1a;新数据集中的数据。 idlabel&#xff1a;转置变量的标签。 copy&#xff1a;不转置的变量直接拷贝到输出数据集中。…

C语言必会题目(1)

W...Y的主页 &#x1f60a; 代码仓库分享❤️ 在学习语言时&#xff0c;最重要的就是练习&#xff0c;光听不练假把式。下面我就推荐一些C语言必会的题。 执行下面程序&#xff0c;正确的输出是&#xff08; &#xff09; int x5,y7; void swap() { int z; zx; xy; yz; } int…

北航基于openEuler构建工业机器人操作系统,打造“开箱即用”的机器人基础软件平台

北京航空航天大学是国家“双一流”建设高校&#xff0c;以建设扎根中国大地的世界一流大学为发展目标。北京航空航天大学在机器人领域一直处于行业前沿&#xff0c;以其亮眼的成果和优秀的师资力量&#xff0c;成为国内机器人领域的重要参与者和建设者。机器人操作系统是机器人…

【Kubernetes】Kubernetes之Kubeadm部署

Kubeadm 一、Kubeadm 部署1. 环境准备2. 所有节点安装 docker3. 所有节点安装 kubeadm&#xff0c;kubelet 和 kubectl4. 部署 K8S 集群4.1 配置 master01 节点4.2 配置 node 节点 二、Kubeadm 高可用部署1. 环境准备2. 所有节点安装 docker2. 所有节点安装kubeadm&#xff0c;…

Substack 如何在去中心化内容创作领域掀起波澜

面对数字内容广告化的困境&#xff0c;Substack回归做内容的初心&#xff0c;通过产品和平台双轮驱动&#xff0c;重塑一个去中心化的多元文化内容聚集地&#xff0c;实现了增长突破。其核心策略在于先使用简洁的创作工具赋能内容生产&#xff0c;进而通过平台的互动机制促进用…

链式二叉树统计结点个数的方法和bug

方法一&#xff1a; 分治&#xff1a;分而治之 int BTreeSize1(BTNode* root) {if (root NULL) return 0;else return BTreeSize(root->left)BTreeSize(root->right)1; } 方法二&#xff1a; 遍历计数&#xff1a;设置一个计数器&#xff0c;对二叉树正常访问&#…

Git入门到精通——保姆级教程(涵盖GitHub、Gitee、GitLab)

文章目录 前言一、Git1.Git-概述1.1.Git-概述-版本控制介绍1.2.Git-概述-分布式版本控制VS集中式版本控制1.3.Git-概述-代码托管中心1.4.Git-概述-安装和客户端的使用 2.Git-命令(常用命令)2.1.Git-命令-设置用户签名2.2.Git-命令-初始化本地库2.3.Git-命令-查看本地库状态2.4.…

如何解决新学期分班查询公布难题?试试这个方法

作为教师&#xff0c;我们常常需要进行学生分班管理&#xff0c;这项工作繁琐但至关重要。为了提高工作效率&#xff0c;我们可以利用现代技术开发一款学生分班查询系统。本文将介绍如何设计和开发这个系统。 首先&#xff0c;我们可以选择使用易查分这样的工具来帮助我们管理…

Java多线程(九)

目录 一、synchronized基本特点 二、synchronized加锁工作过程 2.1 无锁 2.2 偏向锁 2.3 轻量级锁 2.4 重量级锁 三、synchronized其他优化操作 3.1 锁消除 3.2 锁粗化 一、synchronized基本特点 开始是乐观锁&#xff0c;如果锁冲突频繁就会转换成悲观锁开始是轻量级锁&#x…

【java】mybatis-plus代码生成

正常的代码生成这里就不介绍了。旨在记录实现如下功能&#xff1a; 分布式微服务环境下&#xff0c;生成的entity、dto、vo、feignClient等等api模块&#xff0c;需要和mapper、service、controller等等分在不同的目录生成。 为什么会出现这个需求&#xff1f; mybatis-plus&am…

赛码网-triangle(dp) 100%AC代码(C)

———————————————————————————————————— ⏩ 大家好哇&#xff01;我是小光&#xff0c;嵌入式爱好者&#xff0c;一个想要成为系统架构师的大三学生。 ⏩最近在准备秋招&#xff0c;一直在练习编程。 ⏩本篇文章对赛码网的01串的魔法 题目做…

【积水成渊】CSS磨砂玻璃效果和渐变主题色文字

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 lqj_本人_python人工智能视觉&#xff08;opencv&#xff09;从入门到实战,前端,微信小程序-CSDN博客 最新的uniapp毕业设计专栏也放在下方了&#xff1a; https://blog.csdn.net/lbcyllqj/category_12346639.html?spm1…

优思学院|6西格玛标准值水平是多少?

在质量管理和统计学领域&#xff0c;"6西格玛" 是一个重要的概念&#xff0c;它与产品和流程的质量有着密切的关系。本文将解释"6西格玛"标准值水平是什么&#xff0c;以及它在各个行业中的应用。 什么是6西格玛标准值水平&#xff1f; 理解西格玛 西格…

TextBrewer:融合并改进了NLP和CV中的多种知识蒸馏技术、提供便捷快速的知识蒸馏框架、提升模型的推理速度,减少内存占用

TextBrewer:融合并改进了NLP和CV中的多种知识蒸馏技术、提供便捷快速的知识蒸馏框架、提升模型的推理速度&#xff0c;减少内存占用 TextBrewer是一个基于PyTorch的、为实现NLP中的知识蒸馏任务而设计的工具包&#xff0c; 融合并改进了NLP和CV中的多种知识蒸馏技术&#xff0…

【Spring Boot】拦截器与统一功能处理

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE进阶 上一篇文章我们讲解了Spring AOP是一个基于面向切面编程的框架&#xff0c;用于将某方面具体问题集中处理&#xff0c;通过代理对象来进行传递&#xff0c;但使用原生Spring AOP实现统一的…

平板选择什么电容笔比较好?ipad手写笔推荐品牌

在现在的生活上&#xff0c;有了iPad平板&#xff0c;一切都变得简单了许多&#xff0c;也让我们的学习以及工作都更加的便利。这其中&#xff0c;电容笔就起到了很大的作用&#xff0c;很多人都不知道&#xff0c;到底要买什么牌子的电容笔&#xff1f;哪些电容笔的性价比比较…

CentOS7 启动谷歌浏览器 java+Selenium+chrome+chromedriver

前言&#xff1a;自己想使用该技术实现自动化抓取音乐&#xff0c;目前在window上运行成功&#xff0c;需要在Linux Centos服务上跑&#xff0c;配置上出现了许多问题&#xff0c;特此记录。 参考文档&#xff1a;CentOS7 安装Seleniumchromechromedriverjava_远方丿的博客-CSD…

后端开发7.轮播图模块【mongdb开发】

概述 轮播图模块数据库采用mongdb开发 效果图 数据库设计 创建数据库 use sc; 添加数据 db.banner.insertMany([ {bannerId:"1",bannerName:"商城轮播图1",bannerUrl:"http://xx:8020/img/轮播图/shop1.png"}, {bannerId:"2"…

深入学习 Redis - 主从结构配置、流程、底层原理(全网最详细)

目录 前言 一、主从模式 1.1、概述 1.2、配置 redis 主从结构 1.2.1、复制配置文件&#xff0c;修改 1.2.2、配置主从结构 1.2.3、启动 redis 服务 1.2.4、查看复制状态 1.3、slaveof 命令 1.3.1、断开主从复制关系 1.3.2、切换主从复制关系 1.3.3、只读 1.3.4、网…

C语言——自定义类型详解[结构体][枚举][联合体]

自定义类型详解 前言&#xff1a;一、结构体1.1结构体的声明1.2结构体内存对齐1.3位段&#xff08;位域&#xff09; 二、枚举2.1枚举类型的定义2.2枚举类型的优点2.3枚举的使用 三、联合体3.1联合体类型的定义3.2联合体的特点3.3联合体大小的计算 前言&#xff1a; 我打算把结…