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…

虚机Centos忘记密码如何重置

1进入开机前的页面&#xff0c;选中第一个&#xff0c;按“e”键&#xff0c;进入编辑模式 2找到ro crashkernel项&#xff0c;将ro替换成 rw initsysroot/bin/sh 3 Ctrlx mount -o remount, rw / chroot /sysroot chroot /sysroot passwd root 输入两次密码 touch /.a…

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

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

sqoop连接MYSQL报错处理

Sqoop远程连接MYSQL数据库报/apache/commons/lang/StringUtils错误&#xff0c;如下&#xff1a; [rootmanager ~]# sqoop list-databases --connect jdbc:mysql://10.100.81.207:3306/ --username root --password 123 Warning: /home/bigdata/sqoop//../hcatalog does not e…

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;在文…

系统平台同一网络下不同设备及进程的话题通讯--DDS数据分发服务中间件

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言(1)中间件的介绍(2)DDS介绍(3)发布者(4)订阅者(5)idl文件(定义msg结构体)(6)QoS(Quality of Service)策略(7)DDS测试工具介绍(…

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

目录 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() …

nowCode HJ1 字符串最后一个单词的长度 简单

题目 - 点击直达 1. HJ1 字符串最后一个单词的长度 简单1. 题目详情1. 原题链接2. 题目要求3. 基础框架 2. 解题思路1. 思路分析2. 时间复杂度3. 代码实现 1. HJ1 字符串最后一个单词的长度 简单 1. 题目详情 计算字符串最后一个单词的长度&#xff0c;单词以空格隔开&#x…

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; 输入…