EASYX剪切区域

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;

}

绘制卡通熊头像

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Winform 多语言化快速解析替换工具-1分钟一个界面

随着业务的扩展&#xff0c;有的软件有多语言化的需求。那么如果软件已经很多写死的文字内容如何快速进行语言化替换呢&#xff0c;一个一个去改工作量太大。 于是开发了个小工具用来替换现有内容并生成语音包&#xff0c;原理就是采用正则表达式进行匹配控件关键字以及中文进…

orb-slam3编译手册(Ubuntu20.04)

orb-slam3编译手册&#xff08;Ubuntu20.04&#xff09; 一、环境要求1.安装git2.安装g3.安装CMake4.安装vi编辑器 二、源代码下载三、依赖库下载1.Eigen安装2.Pangolin安装3.opencv安装4.安装Python & libssl-dev5.安装boost库 三、安装orb-slam3四、数据集下载及测试 写在…

关于线性模型的底层逻辑解读 (机器学习 细读01)

一 多元线性回归 线性回归是机器学习中 有监督机器学习 下的一种算法。 回归问题主要关注的是因变量(需要预测的值&#xff0c;可以是一个也可以是多个)和一个或多个数值型的自变量(预测变量)之间的关系。 需要预测的值:即目标变量&#xff0c;target&#xff0c;y&#xff0c…

计算机网络重点概念整理-第六章 应用层【期末复习|考研复习】

第六章 应用层 【期末复习|考研复习】 计算机网络系列文章传送门&#xff1a; 第一章 计算机网络概述 第二章 物理层 第三章 数据链路层 第四章 网络层 第五章 传输层 第六章 应用层 第七章 网络安全 计算机网络整理-简称&缩写 文章目录 第六章 应用层 【期末复习|考研复习…

爬取抖音用户的个人基本信息

今年夏季&#xff0c;大概七八月份&#xff0c;刀郎开通抖音账号&#xff0c;并在抖音上发布多首作品&#xff0c;一时之间其热度暴涨&#xff0c;其粉丝也是与日俱增。 有人为了蹭热度&#xff0c;直播刀郎粉丝的实时变化情况&#xff0c;直播热度最高的时候同时几千人在线观…

HttpClient远程使用大全

一 HttpClient简介 1.1 概述 HttpClient只能以编程的方式通过其API用于传输和接受HTTP消息。主要实现功能&#xff1a; 实现了所有 HTTP 的方法&#xff08;GET、POST、PUT、HEAD、DELETE、HEAD、OPTIONS 等&#xff09; 支持 HTTPS 协议 支持代理服务器&#xff08;Nginx…

AS/400简介

AS400 AS400 简介AS/400操作系统演示 AS400 简介 在 AS400 中&#xff0c;AS代表“应用系统”。它是多用户、多任务和非常安全的系统&#xff0c;因此用于需要同时存储和处理敏感数据的行业。它最适合中级行业&#xff0c;因此用于制药行业、银行、商场、医院管理、制造业、分销…

Web APIs——事件流

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

Linux网络编程01

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

【206.反转链表】

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

一款功能强大的iOS设备管理软件Mazing 3中文版免费2024最新下载

Mazing 3中文版是一款功能强大的iOS设备管理软件&#xff0c;它可以帮助用户备份和管理他们的iPhone、iPad或iPod Touch上的数据。除此之外&#xff0c;它还可以将备份数据转移到新的设备中、管理应用程序、导入和导出媒体文件等。本文将详细介绍iMazing的功能和安全性&#xf…

Unity URP14.0 自定义后处理框架

目录 碎碎念一些基础CustomPostProcessing.csCustomPostProcessingFeature.csCustomPostProcessingPass.cs例子&#xff1a;BSC后处理shader&#xff08;BSC&#xff09;后处理cs脚本(BSC) 例子&#xff1a;ColorBlitPostProcessing.hlslColorBlit2.shaderColorBlit.cs文件 其他…

震惊! 全方位解释在测试眼里,什么是需求?为什么要有需求?深入理解需求——图文并茂,生活举例,简单好理解

1、什么是需求&#xff1f; 需求定义(官方) 满足用户期望或正式规定文档&#xff08;合同、标准、规范&#xff09;所具有的条件和权能&#xff0c;包含用户需求和软件需求 用户需求&#xff1a;可以简单理解为甲方提出的需求&#xff0c;如果没有甲方&#xff0c;那么就是终端…

计算机网络【CN】子网划分与子网掩码

一个子网定义(X.X.X.X/n) 子网掩码为 n 个 1&#xff0c;32-n 个 0包含的 IP 地址数&#xff1a;232−n 主机号全 0 表示本网段主机号全 1 表示网段的广播地址可分配的 IP 地址数 :232−&#x1d45b;−2 子网划分原则 满足子网定义子网&#x1d434;1…&#x1d434;&#x…

FlutterUnit 周边 | 收录排序算法可视化

theme: cyanosis 1. FlutterUnit 更新&#xff1a;排序算法可视化 排序算法可视化是用视图层表现出算法执行过程中排序的过程&#xff0c;感谢 编程的平行世界 在 《十几种排序算法的可视化效果&#xff0c;快来看看&#xff01;&#x1f440;》》 一文中提供的算法支持。我进行…

H5游戏分享-烟花效果

<!DOCTYPE html> <html dir"ltr" lang"zh-CN"> <head> <meta charset"UTF-8" /> <meta name"viewport" content"widthdevice-width" /> <title>点击夜空欣赏烟花</title> <sc…

git学习笔记-发现问题如何恢复

1.概要 git总出各种问题&#xff0c;不清楚原因。所以准备了解的跟深入些。本来的理解是这样的: 下载我就pull 修改完就 commit然后push 怎么会有问题的&#xff0c;结果还总有。 既然问题无法避免&#xff0c;那就提高解决问题和恢复问题的能力。如果问题能够恢复就没有什…

Java之数据类型与变量

目录 1. 字面常量 2. 数据类型 3. 变量 3.1 变量概念 3.2 语法格式 3.3 整型变量 3.3.1 整型变量 3.3.2 长整型变量 3.3.3 短整型变量 3.3.4 字节型变量 3.4 浮点型变量 3.4.1 双精度浮点型 3.4.2 单精度浮点型 3.5 字符型变量 3.6 布尔型变量 3.7 类型转换 3.7…

IOC课程整理-18 Spring注解

1. Spring 注解驱动编程发展历程 2. Spring 核心注解场景分类 3. Spring 注解编程模型 https://github.com/spring-projects/spring-framework/wiki/Spring-Annotation-Programming-Model 4. Spring 元注解&#xff08;Meta-Annotations&#xff09; 元注解&#xff08;Meta-A…

UE4 体积云制作 学习笔记

首先Noise本来就是一张噪点图 云的扰动不能太大&#xff0c;将Scale调小&#xff0c;并将InputMin调整为0 形成这样一张扰动图 扰动需要根据材质在世界的位置进行调整&#xff0c;所以Position需要加上WorldPosition 材质在不同世界位置&#xff0c;噪点不同 除以一个数&#…