网站首页 > 教程分享 正文
追溯到上世纪90年代,早期的动画是画在透明塑料板上,把需要的图层一张张叠起来,然后用摄像机拍一帧,一帧就搞定了,然后再画下一帧。某些没有变化的部分可以沿用上一帧的那个板子。比如一个人说话那画几张嘴和一个脸,然后用脸+不同张的嘴就能做出整个镜头了。
也有点类似于我们小时候玩过的动画小手册一样。
动画原理:
动画效果是指让静态的图像在屏幕上产生运动的视觉效果,它的原理是利用人眼的视觉暂留现象,即人眼在看到一个物体后,会在短时间内保留这个物体的影像。如果在这段时间内,快速地显示不同的图像,人眼就会认为这些图像是连续的,从而形成动画效果。一般来说,每秒显示24帧以上的图像,就可以让人眼感觉到流畅的动画效果。
操作步骤:
而接下来,我们可以使用C语言程序,将这些图像展示成一个动画效果。
要使用Easy X和C语言制作动画效果,我们需要以下几个步骤:
1、初始化绘图窗口,设置窗口的大小、背景色、坐标系等属性。
2、使用loadimage函数加载或创建要显示的图像,可以是位图、JPEG、PNG等格式的文件,也可以是用Easy X函数绘制的图形。
3、在循环中,根据时间或事件,改变图像的位置、大小、角度、透明度等属性,然后用putimage函数将图像绘制到绘图窗口中。
使用putimage时我们不再使用之前讲的那么简单的参数版本,而是使用更多参数的一个版本:
void loadimage(
IMAGE* pDstImg, // 保存图像的 IMAGE 对象指针
LPCTSTR pResType, // 资源类型
LPCTSTR pResName, // 资源名称
int nWidth = 0, // 图片的拉伸宽度
int nHeight = 0, // 图片的拉伸高度
bool bResize = false // 是否调整 IMAGE 的大小以适应图片
);
即
void putimage(
int dstX, // 绘制位置的 x 坐标
int dstY, // 绘制位置的 y 坐标
int dstWidth, // 绘制的宽度
int dstHeight, // 绘制的高度
IMAGE *pSrcImg, // 要绘制的 IMAGE 对象指针
int srcX, // 绘制内容在 IMAGE 对象中的左上角 x 坐标
int srcY, // 绘制内容在 IMAGE 对象中的左上角 y 坐标
DWORD dwRop = SRCCOPY // 三元光栅操作码
);
关键参数:
srcX srcY:
他俩表示的是image图像中的左上角位置,那么加上前面第三第四参数的作用,我们就可以做到选择性的输出图片中的部分内容!!
4、在每次绘制图像后,延时时间,然后再次使用putimage函数再次展示下一话图片。
5、在循环结束后,用closegraph函数关闭绘图窗口,释放资源。
完整代码:
下面是一个简单的示例代码,它可以实现一个圆形图像在绘图窗口中左右移动的动画效果:
//微信公众号:工控小新
#include <graphics.h> // 引用图形库头文件
#include <conio.h>
int main()
{
int i;
IMAGE img;
initgraph(640, 480); // 创建绘图窗口,大小为 640x480 像素
loadimage(&img,".//tjq.png"); //加载项目中图片
while(1)
{
for(i=0;i<4;i++)
{
putimage(100,100,160,210,&img,i*160,0,SRCCOPY);
Sleep(500);
}
for(i=0;i<4;i++)
{
putimage(100,100,160,210,&img,i*160,210,SRCCOPY);
Sleep(500);
}
}
getch(); // 按任意键继续
closegraph(); // 关闭绘图窗口
return 0;
}
觉得有用的话,动动你们的小手,点个赞和转发在看,非常感谢!!!
点赞加关注,学习不迷路
微信公众号|工控小新
EPLAN电气绘图、TIA博图基础 、CAD、C语言教学、单片机基础、三菱PLC ... 每日持续更新中
猜你喜欢
- 2024-09-10 24小时学会C语言:第三讲(c语言入门教程视频)
- 2024-09-10 菜鸟教程-C语言经典示例一(c语言菜鸟经典100例)
- 2024-09-10 另类方式讲解C语言指针!(另类方式讲解c语言指针的过程)
- 2024-09-10 C语言从入门到精通:步入C的世界(c 语言入门)
- 2024-09-10 征服C语言基础教程分享(征服c指针pdf)
- 2024-09-10 C语言也能干大事 教程 视频(c语言大佬)
- 2024-09-10 C语言杨辉三角思路讲解来啦!#程序员
- 2024-09-10 新手C语言教程第一弹|感性认识一波C语言
- 2024-09-10 第三集 | 入门c语言 HelloWorld 讲解03 #c语言
- 2024-09-10 初识C语言:简介、环境搭建、第一个HelloWorld
你 发表评论:
欢迎- 最近发表
-
- 有了这份900多页的Android面试指南,你离大厂Offer还远吗?
- K2 Blackpearl 流程平台总体功能介绍:常规流程功能
- 零基础安卓开发起步(一)(安卓开发入门视频)
- 教程:让你的安卓像Windows一样实现程序窗口化运行
- Android事件总线还能怎么玩?(事件总线有什么好处)
- Android 面试被问“谈谈架构”,到底要怎样回答才好?
- Android开发工具Parcel和Serialize
- Android 中Notification的运用(notification widget安卓)
- Android退出所有Activity最优雅的方式
- MT管理器-简单实战-去除启动页(mt管理器怎么去除软件弹窗)
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)