EASYX动画效果实现

eg1:绘制小球的动画效果

  • 通过一下的代码实现小球从左向右移动效果,计算小球的移动速度和帧率实现移动效果平和造成视觉上的错觉
#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#define PI 3.14
// 1PI = 180度 2PI = 360度int main()
{// 编写动画的效果initgraph(800, 600);setorigin(400, 300);;setaspectratio(1, -1);// 创建动画背景setbkcolor(RGB(164, 225, 202));// 清除原来的背景颜色,换上我们给定的背景颜色cleardevice();// 设置填充的颜色为白色setfillcolor(WHITE);// 绘制出圆在每一个时刻的静态画面int x = 0;int y = 0;for (x = -400; x <= 400; x += 5) {// 清除之前绘制的画面cleardevice();solidcircle(x, y, 50);// sleep()函数起到的作用是休眠Sleep(40);}// 延时getchar();closegraph();return 0;
}

eg2:实现五角星往返运动

#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#define PI 3.14
// 1PI = 180度 2PI = 360度// 绘制五角星的函数,参数radius表示的是五角星外切圆的半径,参数startAngle是五角星的起始角度x, y 表示移动五角星的坐标
void fivePointedStar(int x,int y ,int radius, double startAngle) {double delta = 2 * PI / 5;POINT points[5];// 循环5次for (int i = 0; i < 5; i++) {// 使用三角函数计算出如何绘画五角星和五角星绘画的位置points[i].x = cos(startAngle + i * delta * 2) * radius + x;points[i].y = sin(startAngle + i * delta * 2) * radius + y;}solidpolygon(points, 5);
}int main()
{// 编写动画的效果initgraph(800, 600);setorigin(400, 300);;setaspectratio(1, -1);// 创建动画背景setbkcolor(RGB(164, 225, 202));// 清除原来的背景颜色,换上我们给定的背景颜色cleardevice();// 设置填充的颜色为白色setfillcolor(WHITE);// 指定多边形的填充模式为windingsetpolyfillmode(WINDING);// 绘制出圆在每一个时刻的静态画面int x = 0;int y = 0;int dx = 5;while (1) {cleardevice();fivePointedStar(x, y, 50, PI / 2);Sleep(40);x = x + dx;if (x == -400 || x == 400) {dx = -dx;}}for (x = -400; x <= 400; x += 5) {// 清除之前绘制的画面cleardevice();fivePointedStar(x, y, 50, PI / 2);// sleep()函数起到的作用是休眠Sleep(40);}// 延时getchar();closegraph();return 0;}

在这里插入图片描述
eg3:实现五角星实现矩形运动

#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#define PI 3.14
// 1PI = 180度 2PI = 360度// 绘制五角星的函数,参数radius表示的是五角星外切圆的半径,参数startAngle是五角星的起始角度x, y 表示移动五角星的坐标
void fivePointedStar(int x,int y ,int radius, double startAngle) {double delta = 2 * PI / 5;POINT points[5];// 循环5次for (int i = 0; i < 5; i++) {// 使用三角函数计算出如何绘画五角星和五角星绘画的位置points[i].x = cos(startAngle + i * delta * 2) * radius + x;points[i].y = sin(startAngle + i * delta * 2) * radius + y;}solidpolygon(points, 5);
}int main()
{// 编写动画的效果initgraph(800, 600);setorigin(400, 300);;setaspectratio(1, -1);// 创建动画背景setbkcolor(RGB(164, 225, 202));// 清除原来的背景颜色,换上我们给定的背景颜色cleardevice();// 设置填充的颜色为白色setfillcolor(WHITE);// 指定多边形的填充模式为windingsetpolyfillmode(WINDING);int x = -300;int y = 200;int dx, dy;while (1) {if (x == -300 && y == 200) {dx = 5;dy = 0;}else if (x == 300 && y == 200) {dx = 0;dy = -5;}else if (x == 300 && y == -200) {dx = -5;dy = 0;}else if (x == -300 && y == -200) {dx = 0;dy = 5;}cleardevice();fivePointedStar(x, y, 50, PI / 2);// sleep()函数起到的作用是休眠Sleep(40);x = x + dx;y = y + dy;}for (x = -400; x <= 400; x += 5) {// 清除之前绘制的画面cleardevice();fivePointedStar(x, y, 50, PI / 2);// sleep()函数起到的作用是休眠Sleep(40);}// 延时getchar();closegraph();return 0;}

在这里插入图片描述
eg4:让五角星实现圆周运动
在这里插入图片描述

#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#define PI 3.14
// 1PI = 180度 2PI = 360度// 绘制五角星的函数,参数radius表示的是五角星外切圆的半径,参数startAngle是五角星的起始角度x, y 表示移动五角星的坐标
void fivePointedStar(int x,int y ,int radius, double startAngle) {double delta = 2 * PI / 5;POINT points[5];// 循环5次for (int i = 0; i < 5; i++) {// 使用三角函数计算出如何绘画五角星和五角星绘画的位置points[i].x = cos(startAngle + i * delta * 2) * radius + x;points[i].y = sin(startAngle + i * delta * 2) * radius + y;}solidpolygon(points, 5);
}int main()
{// 编写动画的效果initgraph(800, 600);setorigin(400, 300);;setaspectratio(1, -1);// 创建动画背景setbkcolor(RGB(164, 225, 202));// 清除原来的背景颜色,换上我们给定的背景颜色cleardevice();// 设置填充的颜色为白色setfillcolor(WHITE);// 指定多边形的填充模式为windingsetpolyfillmode(WINDING);int x, y;int r = 200;double theta = 0;double dTheta = 0.05;while (1) {x = cos(theta) * r;y = sin(theta) * r;cleardevice();fivePointedStar(x, y, 50, PI / 2);// sleep()函数起到的作用是休眠Sleep(40);theta = theta + dTheta;}for (x = -400; x <= 400; x += 5) {// 清除之前绘制的画面cleardevice();fivePointedStar(x, y, 50, PI / 2);// sleep()函数起到的作用是休眠Sleep(40);}// 延时getchar();closegraph();return 0;}

在这里插入图片描述
eg5:实现动画的自传移动效果

#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#define PI 3.14
// 1PI = 180度 2PI = 360度// 绘制五角星的函数,参数radius表示的是五角星外切圆的半径,参数startAngle是五角星的起始角度x, y 表示移动五角星的坐标
void fivePointedStar(int x,int y ,int radius, double startAngle) {double delta = 2 * PI / 5;POINT points[5];// 循环5次for (int i = 0; i < 5; i++) {// 使用三角函数计算出如何绘画五角星和五角星绘画的位置points[i].x = cos(startAngle + i * delta * 2) * radius + x;points[i].y = sin(startAngle + i * delta * 2) * radius + y;}solidpolygon(points, 5);
}int main()
{// 编写动画的效果initgraph(800, 600);setorigin(400, 300);;setaspectratio(1, -1);// 创建动画背景setbkcolor(RGB(164, 225, 202));// 清除原来的背景颜色,换上我们给定的背景颜色cleardevice();// 设置填充的颜色为白色setfillcolor(WHITE);// 指定多边形的填充模式为windingsetpolyfillmode(WINDING);int x, y;int r = 200;double theta = 0;double dTheta = 0.05;double startAngle = PI / 2;double dStartAngle = 0.05;while (1) {x = cos(theta) * r;y = sin(theta) * r;cleardevice();fivePointedStar(x, y, 50, startAngle);Sleep(40);theta = theta + dTheta;startAngle = startAngle + dStartAngle;}for (x = -400; x <= 400; x += 5) {// 清除之前绘制的画面cleardevice();fivePointedStar(x, y, 50, PI / 2);// sleep()函数起到的作用是休眠Sleep(40);}// 延时getchar();closegraph();return 0;}

在这里插入图片描述

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

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

相关文章

springboot在线招聘系统

springboot在线招聘管理系统&#xff0c;java在线招聘管理系统&#xff0c;在线招聘管理系统 运行环境&#xff1a; JAVA版本&#xff1a;JDK1.8 IDE类型&#xff1a;IDEA、Eclipse都可运行 数据库类型&#xff1a;MySql&#xff08;8.x版本都可&#xff09; 硬件环境&#xf…

云服务器的先驱,亚马逊云科技海外云服务器领军者

随着第三次工业革命的发展&#xff0c;移动互联网技术带来的信息技术革命为我们的生活带来了极大的便捷。其中&#xff0c;不少优秀的云服务器产品发挥了不可低估的作用&#xff0c;你或许听说过亚马逊云科技、谷歌GCP、IBM Cloud等优秀的海外云服务器。那么云服务器有哪些&…

Word批量删除文档属性和个人信息方法图解

投标文件中设计敏感信息&#xff0c;在投标前必须删除&#xff0c;Word批量删除文档属性和个人信息方法图解&#xff1a; 右键word文件属性--详细信息&#xff0c;可以查看如下信息&#xff1b; 删除上述信息的办法&#xff1a; 1.打开word文件---文件 2.检查文档、检查文档 检…

【Python · PyTorch】线性代数 微积分

本文采用Python及PyTorch版本如下&#xff1a; Python&#xff1a;3.9.0 PyTorch&#xff1a;2.0.1cpu 本文为博主自用知识点提纲&#xff0c;无过于具体介绍&#xff0c;详细内容请参考其他文章。 线性代数 & 微积分 1. 线性代数1.1 基础1.1.1 标量1.1.2 向量长度&…

分类预测 | Matlab实现KOA-CNN-BiLSTM-selfAttention多特征分类预测

分类预测 | Matlab实现KOA-CNN-BiLSTM-selfAttention多特征分类预测 目录 分类预测 | Matlab实现KOA-CNN-BiLSTM-selfAttention多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现KOA-CNN-BiLSTM-selfAttention开普勒算法优化卷积双向长短期记忆神…

HIT_OS_LAB1 调试分析 Linux 0.00 引导程序

操作系统实验一 姓名&#xff1a;董帅学号&#xff1a;2021111547班级&#xff1a;21R0312 1.1 实验目的 熟悉实验环境掌握如何手写Bochs虚拟机的配置文件掌握Bochs虚拟机的调试技巧掌握操作系统启动的步骤 1.2 实验内容 1.2.1 掌握如何手写Bochs虚拟机的配置文件 boot: f…

使用 Visual Studio Code 编写 TypeScript程序

安装 TypeScript 首先&#xff0c;确保你已经安装了 TypeScript&#xff0c;如果没有安装&#xff0c;请参考https://blog.csdn.net/David_house/article/details/134077973?spm1001.2014.3001.5502进行安装 创建 新建一个文件夹&#xff0c;用vs code打开&#xff0c;在文…

学习笔记---更进一步的双向链表专题~~

目录 1. 双向链表的结构&#x1f98a; 2. 实现双向链表&#x1f41d; 2.1 要实现的目标&#x1f3af; 2.2 创建初始化&#x1f98b; 2.2.1 List.h 2.2.2 List.c 2.2.3 test.c 2.2.4 代码测试运行 2.3 尾插打印头插&#x1fabc; 思路分析 2.3.1 List.h 2.3.2 List.…

基于Qt 的CAN Bus实现

# 简介 从 Qt5.8 开始,提供了 CAN Bus 类,假设您的 Qt 版本没有 CAN Bus,可以参考 Linux 应用编程来操控开发板的 CAN,目前我们主要讲解 Qt 相关的 CAN编程。其实 Qt 也提供了相关的 Qt CAN 的例子,我们也可以直接参考来编程。读者手上需要有测试 CAN 的仪器!否则写好程…

分类预测 | MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元数据分类预测

分类预测 | MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元数据分类预测 目录 分类预测 | MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双…

python安装库

查看安装的库 按下开始r 输入cmd 查看python版本 查看python所有库 安装一个库 在pycharm里面查看库文件 在pycharm里面安装库 在anaconda里面安装库和查看库

【面试经典150 | 栈】最小栈

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;辅助栈方法二&#xff1a;一个栈方法三&#xff1a;栈中存放差值 其他语言python3 写在最后 Tag 【设计类】【栈】 题目来源 155. 最小栈 题目解读 本题是一个设计类的题目&#xff0c;设计一个最小栈类 MinStack() …

Linux 基本语句_8_C语言_文件控制

为了解决多个进程同时操作一个文件&#xff0c;产生一些情况&#xff0c;通常对文件进行上锁&#xff0c;已解决对共享文件的竞争 对打开文件进行各种操作&#xff1a; int fcentl(int fd, int cmd, .../*arg*/如果cmd与锁操作有关&#xff0c;那么fcentl函数的第三个参数就要…

【深度学习】【NLP】如何得到一个分词器,如何训练自定义分词器:从基础到实践

文章目录 什么是分词&#xff1f;分词算法使用Python训练分词器步骤1&#xff1a;选择分词算法步骤2&#xff1a;准备训练语料步骤3&#xff1a;配置分词器参数步骤4&#xff1a;训练分词器步骤5&#xff1a;测试和使用分词器 代码示例&#xff1a;使用SentencePiece训练分词器…

【算法|动态规划No.32 | 完全背包问题】完全背包模板题

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

79 电话号码的字母组合

电话号码的字母组合 题解1 回溯比较直观的理解 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入…

Perl爬虫程序

以下是一个使用Perl爬虫程序&#xff0c;用于爬取图像。每行代码的中文解释如下&#xff1a; #!/usr/bin/perl ​ use strict; use warnings; use Mojo::UserAgent; use JSON; ​ # 创建一个Mojo::UserAgent实例 my $ua Mojo::UserAgent->new; ​ # 使用获取代理 my $prox…

Android中 BufferQueue 和 Gralloc

目录 零、本篇讨论范围一、图片数据流的生产者与消费者1.1 生产者1.2 消费者 二、生产者与消费者间数据的传递2.1 BufferQueue2.2 Gralloc 零、本篇讨论范围 接上篇 SurfaceFlinger做Layer合成时&#xff0c;如何与HAL层进行交互 后&#xff1a; 本篇的讨论范围如下图红框中所…

2024年天津中德应用技术大学专升本物流管理专业课考试大纲

天津中德应用技术大学物流管理专业&#xff08;高职升本科&#xff09;2024年专业基础考试大纲 一、试卷类型 物流管理专业升本专业课考试共1套试卷&#xff0c;总分200分&#xff0c;考试时间为2小时。内容包含仓储与配送管理40%、物流基础30%&#xff0c;运输管理30%&#…

阿里云服务器—ECS快速入门

这里对标阿里云的课程&#xff0c;一步步学习&#xff0c;链接在下面&#xff0c;学习完考试及格即可获取阿里云开发认证和领取证书&#xff0c;大家可以看看这个&#xff0c;这里我当作笔记&#xff0c;记一下提升印象&#xff01; 内容很长&#xff0c;请耐心看完&#xff0…