EASYX剪切区域

news2024/11/27 14:39:16

eg1:EASY中的颜色模型

可以参考推荐16进制颜色表:https://www.codeeeee.com/color/rgb.html
参考学习EASYX在线文档https://docs.easyx.cn/zh-cn/drawing-func

easyx的基本概念和使用方式

#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#define PI 3.14
// 1PI = 180度 2PI = 360度

int main()
{
    // 计算机使用RGB的原则,使用多种颜色混合的方式呈现出不同的颜色colorref RGB(red,green,blue);
    //colorref HSVtoRGB(float H,float S,float V); H 表示色像,参数S 表示饱和度取值范围在0-1之间,参数V叫明度取值范围在0-1之间
    initgraph(800, 600);
    //setbkcolor(RGB(134, 172, 242));
    setbkcolor(HSVtoRGB(219, 0.15, 0.95));
    cleardevice();
    getchar();
    closegraph();
    // HSV颜色模型,采用色相饱和度的方式选择使用的颜色,或者是亮度的方式

    return 0;

}

使用easyx绘制彩虹的颜色

#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#define PI 3.14
// 1PI = 180度 2PI = 360度

int main()
{
    // 绘制彩虹的颜色
    initgraph(800, 600);
    float dH = 360.0 / 600.0;
    float h = 0;
    for (int y = 0; y < 600; y++) {
        setlinecolor(HSVtoRGB(h, 1, 1));
        line(0, y, 800, y);
        h += dH;
    }
    getchar();
    closegraph();
    return 0;
}

在这里插入图片描述
easyx绘制彩虹窗体

#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#define PI 3.14
// 1PI = 180度 2PI = 360度

int main()
{
    // 绘制彩虹的颜色
    initgraph(800, 600);
    float s = 0.76;
    float ds = s/600;
    for (int y = 0; y < 600; y++) {
        setlinecolor(HSVtoRGB(216, s, 0.95));
        line(0, y, 800, y);
        s -= ds;
    }
    // 定义一个变量H为色相从0开始逐渐递增变化
    float h = 0;
    // dh表示每份之间的色相差
    float dH = 360.0 / 100;
    //使用for循环从半径300开始绘制同心圆
    for (int r = 300; r >= 200; r--) {
        setlinecolor(HSVtoRGB(h,1,1));
        // 绘制同心圆
        circle(400, 600, r);
        h += dH;

    }
    getchar();
    closegraph();
    return 0;

}

在这里插入图片描述
easyx绘制显示器

#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#define PI 3.14
// 1PI = 180度 2PI = 360度

int main()
{
    // 创建窗体
    initgraph(800, 600);
    setbkcolor(WHITE);
    cleardevice();
    // 绘制圆角矩形
    setfillcolor(RGB(232, 235, 240)); // setfillcolor函数设置填充颜色
    solidroundrect(100, 50, 700, 450, 20, 20); // 绘制圆角矩形函数

    // 绘制矩形
    setfillcolor(RGB(71, 78, 94)); // 设置填充颜色
    solidrectangle(100, 390, 700, 410); // 绘制对应的蓝黑色矩形
    
    // 直接调用solidroundrect()函数绘制蓝黑色的矩形
    solidroundrect(100, 50, 700, 410, 20, 20);
    
    // 绘制天蓝色的填充颜色
    setfillcolor(RGB(115, 199, 235));
    solidrectangle(120, 70, 680, 390);
    
    // 绘制圆形摄像头
    setfillcolor(RGB(232, 235, 240));
    solidcircle(400, 60, 5);
    
    // 绘制电脑的开机键
    setfillcolor(RGB(71, 78, 94));
    solidcircle(400, 430, 12);
    
    // 绘制椭圆形的底座
    setfillcolor(RGB(218,219,224));
    solidellipse(275, 515, 525, 545);
    
    // 绘制梯形为椭圆形的底座
    setfillcolor(RGB(232, 235, 240));
    // POINT 类型的数组保存T型4个顶点的坐标
    POINT bigTrapezoid[4] = { {345,450},{455,450},{475,530},{325,530} };
    // 绘制银色的梯形支架
    solidpolygon(bigTrapezoid, 4);
    
    getchar();
    // 关闭画布
    closegraph();
    return 0;

}

在这里插入图片描述
EASTX绘制组图案

#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#define PI 3.14
// 1PI = 180度 2PI = 360度

int main()
{
    // 绘制一个800*800的画布
    initgraph(800, 800);
    // 将画布的圆心设置在画布中心的位置山
    setorigin(400, 400);
    // 翻转Y轴,形成直角坐标系
    setaspectratio(1, -1);
    // 绘制画布的背景颜色
    setbkcolor(RGB(248, 248, 255));
    // 清除画布的样式让画布按自己的方式呈现出来
    cleardevice();
    // 设置描边的样式为黑色
    setlinecolor(BLACK);
    // 绘制线段的样式风格和线段的粗细,设置描边为实线,粗细为10px
    setlinestyle(PS_SOLID, 10);
    int r = 150;
    // 绘制一个圆心为0 ,0 半径为10的圆
    circle(0, 0, r);
    // 通过for循环依托第一个圆绘制另外的6个圆
    for (int i = 0; i < 6; i++) {
        int x;
        int y;
        // 使用三角函数计算圆心的位置
        x = cos(i * PI / 3) * r;
        y = sin(i * PI / 3) * r;
        // 绘制圆心为(x,y)半径为r的圆
        circle(x, y, r);
    }
    getchar();
    closegraph();
    return 0;
}

在这里插入图片描述
EASYX绘制剪切区域

/*
  创建剪切区域,绘制在剪切区域内的图形会被保留,绘制在剪切区域外的图形不会被保留
  目前WINDOWS GDI中提供了4个函数用于创建剪切区域
  createFllipiticRgn:用于创建椭圆区域
  createPolygoncRgn: 用于创建多边形区域
  createRectRhn: 用于创建矩形
  createRoundRectRgn: 用于创建圆角矩形

*/

剪切区域后的代码

#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#define PI 3.14
// 1PI = 180度 2PI = 360度

int main()
{
    // 绘制一个800*800的画布
    initgraph(800, 800);
    // 将画布的圆心设置在画布中心的位置山
    setorigin(400, 400);
    // 翻转Y轴,形成直角坐标系
    setaspectratio(1, -1);
    // 绘制画布的背景颜色
    setbkcolor(RGB(248, 248, 255));
    // 清除画布的样式让画布按自己的方式呈现出来
    cleardevice();
    // 设置描边的样式为黑色
    setlinecolor(BLACK);
    // 绘制线段的样式风格和线段的粗细,设置描边为实线,粗细为10px
    setlinestyle(PS_SOLID, 10);
    int r = 150;
    /*
         创建剪切区域,绘制在剪切区域内的图形会被保留,绘制在剪切区域外的图形不会被保留
         目前WINDOWS GDI中提供了4个函数用于创建剪切区域
         createFllipiticRgn:用于创建椭圆区域
         createPolygoncRgn: 用于创建多边形区域
         createRectRhn: 用于创建矩形
         createRoundRectRgn: 用于创建圆角矩形

   */
    // 创建圆形区域
    HRGN rgn = CreateEllipticRgn(250, 250, 550, 550);
    // 设置剪切区域的函数setcliprgn将刚刚简历的圆形区域设置为剪切区域
    setcliprgn(rgn);

    // 绘制一个圆心为0 ,0 半径为10的圆
    circle(0, 0, r);
    // 通过for循环依托第一个圆绘制另外的6个圆
    for (int i = 0; i < 6; i++) {
        int x;
        int y;
        // 使用三角函数计算圆心的位置
        x = cos(i * PI / 3) * r;
        y = sin(i * PI / 3) * r;
        // 绘制圆心为(x,y)半径为r的圆
        circle(x, y, r);
    }
    // 绘制剪切区域成功后将剪切区域设置为null后面的绘制操作将不会受到剪切区域的影响
    setcliprgn(NULL);
    // 销毁之前创建的圆形区域
    DeleteObject(rgn);


    getchar();
    closegraph();
    return 0;

}

在这里插入图片描述
EASYX组合区域

/*
   组合区域:组合区域函数
   int CombineRgn(
      HRGN hrgnDst, // 目标区域
      HRGN hrgnSRC1,// 源区域1
      HRGN hrgnSrc2,// 源区域2
      int iMode  // 区域的组合模式,作用在于让源区域1和源区域2以某种的方式进行组合得到某种新的组合方式

   );
*/

剪切区域之交集

#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#define PI 3.14
// 1PI = 180度 2PI = 360度

int main()
{
    // 绘制一个800*800的画布
    initgraph(800, 800);
    // 将画布的圆心设置在画布中心的位置山
    setorigin(400, 400);
    // 翻转Y轴,形成直角坐标系
    setaspectratio(1, -1);
    // 绘制画布的背景颜色
    setbkcolor(RGB(248, 248, 255));
    // 清除画布的样式让画布按自己的方式呈现出来
    cleardevice();
    // 设置描边的样式为黑色
    setlinecolor(BLACK);
    // 绘制线段的样式风格和线段的粗细,设置描边为实线,粗细为10px
    setlinestyle(PS_SOLID, 10);
    int r = 150;
    /*
         创建剪切区域,绘制在剪切区域内的图形会被保留,绘制在剪切区域外的图形不会被保留
         目前WINDOWS GDI中提供了4个函数用于创建剪切区域
         createFllipiticRgn:用于创建椭圆区域
         createPolygoncRgn: 用于创建多边形区域
         createRectRhn: 用于创建矩形
         createRoundRectRgn: 用于创建圆角矩形

   */
    // EASYX剪切区域的代码
    HRGN rgn1 = CreateEllipticRgn(250, 250, 550, 550);
    HRGN rgn2 = CreateEllipticRgn(250, 100, 550, 400);
    HRGN rgn = CreateRectRgn(0, 0, 0, 0);
    // 图像的组合模式为交集RGN_AND
    CombineRgn(rgn, rgn1, rgn2, RGN_AND); 

    // 设置剪切区域的函数setcliprgn将刚刚简历的圆形区域设置为剪切区域
    setcliprgn(rgn);
    
    // 绘制一个圆心为0 ,0 半径为10的圆
    circle(0, 0, r);
    // 通过for循环依托第一个圆绘制另外的6个圆
    for (int i = 0; i < 6; i++) {
        int x;
        int y;
        // 使用三角函数计算圆心的位置
        x = cos(i * PI / 3) * r;
        y = sin(i * PI / 3) * r;
        // 绘制圆心为(x,y)半径为r的圆
        circle(x, y, r);
    }
    // 绘制剪切区域成功后将剪切区域设置为null后面的绘制操作将不会受到剪切区域的影响
    setcliprgn(NULL);
    // 销毁之前创建的圆形区域
    DeleteObject(rgn1);
    DeleteObject(rgn2);
    DeleteObject(rgn);
    
    /*
       组合区域:组合区域函数
       int CombineRgn(
          HRGN hrgnDst, // 目标区域
          HRGN hrgnSRC1,// 源区域1
          HRGN hrgnSrc2,// 源区域2
          int iMode  // 区域的组合模式,作用在于让源区域1和源区域2以某种的方式进行组合得到某种新的组合方式
    
       );
    */
    
    getchar();
    closegraph();
    return 0;

}

在这里插入图片描述
组合模式之差集
在这里插入图片描述
在这里插入图片描述
组合模式之并集
在这里插入图片描述
在这里插入图片描述
并集排除交叠区域
在这里插入图片描述
在这里插入图片描述
绘制卡通熊头像

#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#define PI 3.14
// 1PI = 180度 2PI = 360度

int main()
{
    initgraph(800, 600);
    setbkcolor(RGB(169, 92, 10));
    cleardevice();
    // 绘制卡通熊的耳朵和耳朵的阴影
    setfillcolor(RGB(130, 69, 4));
    solidcircle(200, 130, 90);
    solidcircle(600, 130, 90);
    setfillcolor(RGB(255, 178, 50));
    solidcircle(200, 120, 90);
    solidcircle(600, 120, 90);
    //绘制耳朵的高光
    HRGN leftEarClip =
        CreateEllipticRgn(110, 30, 290, 210);
    HRGN rightEarClip =
        CreateEllipticRgn(510, 30, 690, 210);
    HRGN earsClip =
        CreateRectRgn(0, 0, 0, 0);
    CombineRgn(earsClip, leftEarClip, rightEarClip, RGN_OR);
    setcliprgn(earsClip);

    setfillcolor(RGB(243, 154, 2));
    solidcircle(200, 130, 90);
    solidcircle(600, 130, 90);
    
    // 绘制出耳朵的形状
    setfillcolor(RGB(255, 178, 50));
    solidcircle(200, 210, 90);
    solidcircle(600, 210, 90);
    
    // 释放之前创建的3个区域
    DeleteObject(leftEarClip);
    DeleteObject(rightEarClip);
    DeleteObject(earsClip);
    setcliprgn(NULL);
    // 绘制卡通熊的头部
    setfillcolor(RGB(255, 178, 50));
    solidcircle(400, 300, 250);
    // 创建和设置圆形剪切区域
    HRGN headClip =
        CreateEllipticRgn(150, 50, 650, 550);
    setcliprgn(headClip);
    //绘制圆形高光
    setfillcolor(RGB(243, 154, 2));
    solidcircle(400, 320, 250);
    // 释放前面建立的区域
    DeleteObject(headClip);
    setcliprgn(NULL);
    
    // 绘制卡通熊的眼睛
    setfillcolor(RGB(51, 34, 8));
    solidcircle(275, 300, 25);
    solidcircle(525, 300, 25);
    // 绘制卡通熊的嘴巴
    setfillcolor(RGB(130, 69, 4));
    solidellipse(310, 385, 490, 485);
    
    setfillcolor(WHITE);
    solidellipse(310, 380, 490, 480);
    
    // 绘制卡通熊的鼻子和胡须
    setfillcolor(RGB(51, 34, 8));
    solidcircle(400, 420, 15);
    
    // 卡通熊的胡须
    setlinestyle(PS_SOLID, 5);
    setlinecolor(RGB(51, 34, 8));
    line(400, 420, 370, 450);
    line(400, 420, 430, 450);
    
    getchar();
    closegraph();
    return 0;

}

绘制卡通熊头像

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

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

相关文章

[Python进阶] 消息框、弹窗:pywin32

6.19 消息框、弹窗&#xff1a;pywin32 说明&#xff1a; pywin32是一个第三方模块库&#xff0c;主要的作用是方便Python开发者快速调用windows API的一个模块库。同时pywin32也是一些windows上第三方Python模块库的前提&#xff0c;例如wmi&#xff0c;如果没有安装pywin32是…

Web APIs——事件流

一、事件流 1.1 事件流与两个阶段说明 事件流指的是事件完整执行过程中的流动路径 说明&#xff1a;假设页面里有个div&#xff0c;当触发事件时&#xff0c;会经历两个阶段&#xff0c;分别是捕获阶段、冒泡阶段 简单来说&#xff1a;捕获阶段是 从父到子 冒泡阶段是从子到父…

故障诊断模型 | Maltab实现GRU门控循环单元故障诊断

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现GRU门控循环单元故障诊断 模型描述 利用各种检查和测试方法,发现系统和设备是否存在故障的过程是故障检测;而进一步确定故障所在大致部位的过程是故障定位。故障检测和故障定位…

问题 S: 一只小蜜蜂...(初始化dp)

1.注意点&#xff1a; 该题递推公式为斐波那契数列&#xff0c;而n达到50&#xff0c;是非常大的数 &#xff0c; 故应用循环代替递归&#xff0c;同时记录数据 ​​ 2.注意点&#xff1a;初始化起点&#xff0c;切忌重新递归找数 可以直接初始化所求数据&#xff0c;对应之…

不同碳化硅晶体面带来的可能性

对于非立方晶体&#xff0c;它们天生具有各向异性&#xff0c;即不同方向具有不同的性质。以碳化硅晶体面为例&#xff1a; 4H-SIC和6H-SIC的空间群是P63mc&#xff0c;点群是6mm。两者都属于六方晶系&#xff0c;具有各向异性。3C-SIC的空间群是F-43m&#xff0c;点群是-43m。…

关于Lab5用户进程管理内存布局解析

目录 一、解读Lab5的kernel.ld文件 1.获取bin/kernel的symbols table ​2.excel表格数据整理 3.将kernel_symbol_table_1按照B列排序 4.kernel.ld文件内容 5.SECTIONS->. 0xC0100000;解读 6.ENTRY(kern_entry)解读 7.SECTIONS->.text解读 8.SECTIONS->PROVI…

Linux网络编程01

网络层级 协议 协议&#xff1a;两个对等实体对通话内容的约定&#xff0c;一个协议是对应收发双方相同层级的 常见的协议 应用层&#xff08;公开协议&#xff09;&#xff1a; http协议&#xff08;浏览网页&#xff09;&#xff1b;客户端&#xff08;浏览器&#xff09;发…

2024年最新水果音乐制作软件FL Studio21需要多少钱呢?

水果&#xff0c;全称Fruity Loop Studio&#xff0c;简称FL Studio。是一款全能的音乐制作软件&#xff0c;经过二十多年的演化更迭&#xff0c;其各项功能非常的先进。其开创性的Pat\song模式&#xff0c;也为初学者的学习提供了便利。那么水果音乐制作软件FL Studio21需要多…

Proteus仿真--8位数码管滚动显示单个数字(仿真文件+程序)

本文主要介绍基于51单片机的8位数码管滚动显示单个数字&#xff08;完整仿真源文件及代码见文末链接&#xff09; 仿真运行视频 Proteus仿真--8位数码管滚动显示单个数字&#xff08;仿真文件程序&#xff09; 附完整Proteus仿真资料代码资料 百度网盘链接: https://pan.baidu…

基于Matlab违章车辆车牌识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、基于Matlab违章车辆车牌识别系统四. 总结 一项目简介 首先&#xff0c;车牌识别技术在提高高速公路收费站效率方面起着至关重要的作用。由于高…

03、SpringCloud -- 动态倒计时 及 当前用户的获取(用户未登录提示其登录)

目录 动态倒计时需求思路代码效果优化获取当前登录用户思路代码前端后端controllerservice接口impl实现效果问题修改动态倒计时 需求 根据不同时间展示不同状态,动态显示时间,如原型图: 思

【206.反转链表】

目录 一、题目描述二、算法原理三、代码实现 一、题目描述 二、算法原理 三、代码实现 class Solution { public:ListNode* reverseList(ListNode* head) {if(headnullptr) return nullptr;if(head->nextnullptr) return head;ListNode* newheadreverseList(head->next)…

[javaweb]——HTTP请求与响应协议,常见响应状态码(如:404)

&#x1f308;键盘敲烂&#xff0c;年薪30万&#x1f308; 目录 HTTP概述 &#x1f4d5;概念&#xff1a;Hyper Text Transfer Protocol&#xff0c;超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则。 &#x1f4d5;特点&#xff1a; &#x1f4d5;插播…

故障诊断模型 | Maltab实现LSTM长短期记忆神经网络故障诊断

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现LSTM长短期记忆神经网络故障诊断 模型描述 长短记忆神经网络——通常称作LSTM,是一种特殊的RNN,能够学习长的依赖关系。 他们由Hochreiter&Schmidhuber引入,并被许多人进行了…

【k8s】资源管理命令-陈述式

一、资源管理介绍 1、资源管理概念 在kubernetes中&#xff0c;所有的内容都抽象为资源&#xff0c;用户需要通过操作资源来管理kubernetes。 //kubernetes的本质就是一个集群系统&#xff0c;用户可以在集群中部署各种服务&#xff0c;起始就是在kubernetes集群中运行一个个…

查询计算机GUID码

如何查询计算机GUID码&#xff08;全局唯一标识符&#xff09; 1.快键键WINR进入注册表 2.找到\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography路径 3.双击MachineGuid项即可显示计算机GUID码

Latex报错 “Paragraph ended before \Gin@iii was complete“

大家看看自己的模版的前面 加载的包 里面是不是有个 \usepackage{graphics} 问题就在这里&#xff0c;我们需要把它改成\usepackage{graphicx}

XHSELL连接虚拟机的常见问题(持续更新)

问题一&#xff1a;找不到匹配的host key算法。 检查XSHELL的版本&#xff0c;如果是旧版本&#xff0c;就有可能不支持新的算法&#xff0c;解决方法就是安装最新版本的XSHELL。 注&#xff1a;本人使用xshell5连接ubuntu22.04.3&#xff0c;出现了上述问题&#xff0c;将xsh…

故障诊断入门书籍资料免费领取

前言 本期分享免费提供9本故障诊断领域相关的书籍资料&#xff0c;可自行下载 一、主要内容 二、书籍获取

H5游戏源码分享-手机捉鬼游戏

H5游戏源码分享-手机捉鬼游戏 一款考验手速的游戏 <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><title>手机捉鬼 微信HTML5在线朋友圈游戏</title><meta name&…