首页 > 其他分享 >G3.【C语言】EasyX的窗口坐标体系和绘制基本图形

G3.【C语言】EasyX的窗口坐标体系和绘制基本图形

时间:2024-07-07 09:57:45浏览次数:17  
标签:PS Draw G3 int void EasyX C语言 矩形 define

1a0ff46a43894c3fb33fd08e0fd18a43.png

左上角是坐标原点

注意标题栏不计入坐标中

getwidth()获取窗口宽度 getheight()获取窗口高度

画点头文件

COLORREF getpixel(int x, int y);				// Get pixel color
void putpixel(int x, int y, COLORREF color);	// Set pixel color

画线头文件

线的坐标

void line(int x1, int y1, int x2, int y2);		// Draw a line

线的颜色

void setlinecolor(COLORREF color);	// Set line color

 

线的样式

/* Pen Styles */
#define PS_SOLID            0 
#define PS_DASH             1       /* -------  */
#define PS_DOT              2       /* .......  */
#define PS_DASHDOT          3       /* _._._._  */
#define PS_DASHDOTDOT       4       /* _.._.._  */
#define PS_NULL             5
#define PS_INSIDEFRAME      6
#define PS_USERSTYLE        7
#define PS_ALTERNATE        8
#define PS_STYLE_MASK       0x0000000F

 

画正矩形头文件

无填充

void rectangle	   (int left, int top, int right, int bottom);	// Draw a rectangle without filling

有填充

void fillrectangle (int left, int top, int right, int bottom);	// Draw a filled rectangle with a border

 画圆角矩形头文件

无填充

roundrect	   (int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight);		// Draw a rounded rectangle without filling

画圆头文件

circle		(int x, int y, int radius);		// Draw a circle without filling
void fillcircle (int x, int y, int radius);		// Draw a filled circle with a border
void solidcircle(int x, int y, int radius);		// Draw a filled circle without a border
void clearcircle(int x, int y, int radius);		// Clear a circular region

画椭圆头文件

void ellipse	 (int left, int top, int right, int bottom);	// Draw an ellipse without filling
void fillellipse (int left, int top, int right, int bottom);	// Draw a filled ellipse with a border
void solidellipse(int left, int top, int right, int bottom);	// Draw a filled ellipse without a border
void clearellipse(int left, int top, int right, int bottom);	// Clear an elliptical region

画折线头文件

void polyline	 (const POINT *points, int num);								// Draw multiple consecutive lines

 

 

代码实现

#include <stdio.h>
#include <easyx.h>
void  drawShape()
{
	putpixel(50,50,RED);//绘制一个点(X,Y,颜色)
	setlinecolor(BLUE);//设置线的颜色,写在前面
	setlinestyle(PS_SOLID,3);//设置样式,SOLID实心,3(3个像素)影响line和rectangle
	line(0, 0, 640, 480);//画线(写在后面)(起始点横坐标,起始点纵坐标,终止点横坐标,终止点纵坐标)类比向量
	//画正矩形****************************************************************************************************************
	rectangle(100,0,80,50);//用两个点画无填充有框正矩形(起始点横坐标,起始点纵坐标,终止点横坐标,终止点纵坐标)
	setfillcolor(YELLOW);//一定要在绘制之前设置填充颜色
	fillrectangle(500, 200, 400, 90);//用两个点画填充正矩形
	solidrectangle(200, 500, 90, 400);//填充无边框正矩形
	//*************************************************************************************************************************
	//画圆角矩形**************************************************************************************************************
	setfillcolor(RED);
	roundrect(30,100,100,260,20,70);//前四个是矩形坐标,后两个分别是“圆”的宽度和高度(可为圆或椭圆)(长轴 短轴)))
	fillroundrect(30 + 200, 100, 100 + 200, 260, 20, 70);//填充有边框圆角矩形
	solidroundrect(30+500, 100, 100+500, 260, 20, 70);//填充无边框圆角矩形
	//*************************************************************************************************************************
	circle(50,50,20);//圆心坐标,半径
	ellipse(120, 409, 21, 49);//画椭圆
	POINT points[] = { {0,0},{20,20},{10,60} };//数组存储折线的”折点“
	polyline(points,3);//调用数组的3个”折点“

}
int main()
{
	initgraph(640,480,EX_SHOWCONSOLE);
	setbkcolor(RGB(57, 155,143));//设置背景颜色
	cleardevice();//填充颜色
	drawShape();//一定要写,否则无法绘制图形
	getchar();
	return 0;
}

效果 

703ed45fbed24461a3cfa76ffc1f73e8.png

EasyX 文档 - 图形绘制相关函数https://docs.easyx.cn/zh-cn/drawing-func

 

 

 

 

 

 

 

 

标签:PS,Draw,G3,int,void,EasyX,C语言,矩形,define
From: https://blog.csdn.net/2401_85828611/article/details/140236865

相关文章

  • 【C语言入门】初识C语言:掌握编程的基石
    ......
  • C语言教程-12_1-初识函数
    title:C语言教程-12_1-初识函数tags:[C]categories:C语言教程description:程序功能进一步复杂-使用函数进行分离提要:初步讲解C语言的函数的概念和语法前置知识:学习过数学,知道什么是数学的函数掌握C语言复合语句的概念什么是函数数学意义上的函数近代定义:......
  • C语言实战项目:贪吃蛇游戏(SnakeGame)
    前言:前面C语言的基础语法和数据结构的顺序表、链表已经学完了,我们就已经有能力去实现一个贪吃蛇项目。我们可以实现一些贪吃蛇的一些功能,例如:食物的随机生成、贪吃蛇的长度、贪吃蛇加速和减速、暂停游戏、贪吃蛇的游戏结束判定等...如下图所示:图片仅限参考真实项目视频:20......
  • 24.【C语言】getchar putchar的使用
    1.基本作用 用户输入字符,getchar()获取字符(含\n:即键入的Enter)(字符本质上是以ASCII值或EOF(-1)存储的)(与scanf有区别)putchar()打印字符(把得到的ASCII值转换成字符)(相当于printf)由于getcharputchar只操作字符,因此执行效率高例:#include<stdio.h>intmain(){intch=......
  • 使用WebSocket和C语言实现一个简单的计算器
    在现代Web开发中,WebSocket已经成为实时通信的重要工具。本文将介绍如何使用WebSocket与C语言结合,实现一个简单的计算器应用。我们将通过Go语言作为中间层,调用C语言编写的计算函数,并通过WebSocket与前端进行交互。在使用本文章代码开发过程中遇到问题,可参考博主的另外两篇博客......
  • C语言命名规范
    C语言命名规范在C语言中,命名规范对于代码的可读性和可维护性至关重要。以下是一些常见的C语言命名规律和建议变量命名变量名应该具有描述性,清晰地表达变量的用途或含义。变量名使用小写字母和下划线(snake_case)的组合,例如intmy_variable;。避免使用单个字符作为变量名,除非......
  • C语言字节对齐技术在嵌入式、网络与操作系统中的应用与优化
    第一部分:嵌入式系统中的字节对齐嵌入式系统通常对性能和资源有着严格的要求。在这些系统中,字节对齐的正确使用可以显著提高数据访问速度,减少内存占用,并提高系统的整体效率。一、嵌入式系统中的字节对齐挑战嵌入式系统中的微处理器和微控制器通常对数据访问的对齐有特定的要......
  • C语言笔记28 •顺序表经典算法OJ题•
    1.删除数组中指定的元素//算法实现intremoveElement(int*nums,intnumsSize,intval){   intsrc=0;//nums[src]==valsrc++   intdst=0;///nums[src]!=valsrc++ dst++   while(src<numsSize)   {      if(nums[src]==va......
  • 7.5复习C语言
    7.5复习C语言地址传参和值传参的区别1、地址传参是指将函数调用时实参的地址或指针作为形参传递给函数,函数内对形参所指向的内存空间进行操作会改变实参的值也会影响其他使用该实参的地方。2、值传参是指将函数调用时实参的值复制价给形参函数内对形参进行操作不会影响实参的值......
  • MSPM0G3507——读取引脚的高低电平方法(数字信号循迹模块)
     SYSCFG配置  代码部分//第一个传感器if(DL_GPIO_readPins(xunji_PORT_PIN1_PORT,xunji_PORT_PIN1_PIN)==xunji_PORT_PIN1_PIN)//黑,不亮高{a=1;}......