SDL历程--课程设计之画图
在我的SDL系列文章中的上一篇我已经介绍了关于SDL的安装过程及其详细步骤,下面就开始我们的SDL征途吧。
这一篇我着重为大家讲解如何利用SDL做一个简单的颜色自动变换调色板。
根据SDL官方文档我们很容易就能够获得建立一个屏幕的步骤:
首先我们要初始化一个Video,而后获得一个SDL_Surface;
SDL_Init(SDL_INIT_VIDEO);
SDL_Surface *screen = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);
如果函数调用成功则一切OK,
SDL给用户提供了很多画图的API,它们在SDL_gfxPrimitives.h文件中
在这里我们只用其中的一个来实现我们的功能
- boxRGBA(SDL_Surface * dst, Sint16 x1, Sint16 y1, Sint16 x2,
- Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
这个函数就可以实现在dst上显示出我们所要绘制的图案了...是不是感觉很high呀...就这么简单
下面我就把具体的代码贴出来供大家分享下...
- #include <SDL.h>
- #include <SDL_gfxPrimitives.h>
- #include <SDL_image.h>
- #include <SDL_rotozoom.h>
- #include <SDL_ttf.h>
- #include <stdio.h>
- int main(int argc,char *argv[])
- {
- if(SDL_Init(SDL_INIT_VIDEO) < 0 )
- {
- printf("Init error\n");
- return -1;
- }
- SDL_Surface *screen = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);
- if(!screen)
- {
- printf("Init video mode error\n");
- return -1;
- }
- int i = 255;
- for(; i >= 0; i--)
- {
- SDL_FillRect(screen, &screen->clip_rect, 0x0);
- boxRGBA(screen, 100, 100, 300, 300, 255, 0, 0, i);
- SDL_Delay(20);
- SDL_UpdateRects(screen,1,&screen->clip_rect);
- }
- SDL_Quit();
- return 0;
- }
本文转自 驿落黄昏 51CTO博客,原文链接:http://blog.51cto.com/yiluohuanghun/832855,如需转载请自行联系原作者
SDL历程--课程设计之画图相关推荐
- C++课程设计--简易画图程序(MFC)
目录 简介 课设题目 功能需求 实现功能 程序运行界面 源码 结语 简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C ...
- matlab卷积画图,基于MATLAB的卷积演示系统课程设计
1卷积演示程序设计原理 数字信号处理的直接对象是数字信号,处理的方式是数值运算的方式,它涉及到的内容非常丰富和广泛,它是应用最快.成效最显著的新学科之一,作为信息专业的专业基础课,需要掌握其基本理论和 ...
- 基于JavaSwing开发画图软件 课程设计 小作业 大作业源码
基于JavaSwing开发画图软件(大作业/课程设计) 开发环境: Windows操作系统 开发工具:MyEclipse/eclipse/idea+Jdk 运行效果图: 基于JavaSwing开发 ...
- c语言画图 钟表模拟程序,图形模拟时钟C语言课程设计
图形模拟时钟C语言课程设计 更新时间:2017/2/2 9:03:00 浏览量:640 手机版 学号13082101182014-2015学年第二学期 <高级语言程序设计> 课程设计报 ...
- Java课程设计-画图工具
摘要 根据Windows自带的画图工具,进行简单的仿照,运行后用户可以实现简单的绘画,例如画三角形.多边形.矩形.曲线.直线,用户还可以根据需要选择喜欢的颜色进行绘画,并做到改变窗口大小或最小化窗口后 ...
- java编写类骑士游历_java课程设计骑士游历程序的开发
java课程设计骑士游历程序的开发 JAVA程序设计 课程设计报告 课 题: 骑士游历程序的开发 姓 名: 学 号: 同组姓名: 专业班级: 指导教师: 设计时间: 2013.06.10 评阅意见: ...
- python程序设计课程设计二级减速器_机械工程专业的本科生应该自学哪些知识?...
本人机械工程师,偏设计方向,硕士学历,有9年机械工程经验,曾担任某央企项目负责人,算不上大牛. 虽然离题目提出时间已经很遥远了,但看了这个题目和许多回答真的感慨很多,加上一些知友最近私信问我类似的问题 ...
- 计算机课程设计结业感言,课程设计感言
微课程的设计与制作培训感言.微课程的设计与制作培训感言. 课程设计感言2017-07-29 19:45:41 | #1楼回目录 将近一个月的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识, ...
- 操作系统实验以及课程设计
趁没人,当个小白来偷偷摸摸补一下操作系统的课程,羞 反正操作系统断断续续的看了一点了,主要是偏linux的.FreeBSD的实现,操作系统概念,30天自制操作系统等.Linux的话命令用的还行,没有很 ...
最新文章
- 计算机专业在线家教,基于SSM框架的家教平台设计与实现计算机专业.doc-原创力文档...
- Yarn已过时!Kubeflow实现机器学习调度平台才是未来
- C# 尝试读取或写入受保护的内存,这通常指示其他内存已损坏。错误类型为:System.AccessViolationException。...
- leetcode94. 二叉树的中序遍历(dfs)
- LeetCode 945. 使数组唯一的最小增量(贪心)
- matlab 扫雷命令,Matlab版扫雷
- 一行代码解决:jupyter中OSError: [Errno 99] Cannot assign requested address错误
- python优点是代码库支持、灵活_C++和Python混合编程的利器
- linux中rlwrap安装
- Flutter 高级篇-所有知识点架构
- CentOS 6.7安装Spark 1.5.2
- 用python画三角函数
- CentOS7安装dnf报错:No package dnf available
- 安装ADB驱动 ADB相关问题
- 使用FFmpeg将m4s文件转为mp4 ——哔哩哔哩缓存转码
- 华三路由交换配置命令_华三交换机-路由器配置命令
- 可见光通信系统的调制效率
- 基于微信小程序的大学生心理健康测试设计与实现 .docx
- 大学生性价比计算机推荐,快开学了 大学生该如何选择一款高性价比电脑?
- 使用CSS制作斜边矩形原理分析
热门文章
- laravel多种安装方法
- DELL服务器引导光盘图片及下载链接
- nginx php win平台配置
- 【Linux 内核 内存管理】内存管理架构 ④ ( 内存分配系统调用过程 | 用户层 malloc free | 系统调用层 brk mmap | 内核层 kmalloc | 内存管理流程 )
- 【RecyclerView】 十四、GridLayoutManager 网格布局管理器 ( GridLayoutManager.SpanSizeLookup 指定 item 元素占用网格个数 )
- 【DBMS 数据库管理系统】数据仓库 数据组织 ( 数据组织级别 | 元数据 | 粒度 | 分割 | 数据组织形式 )
- 【运筹学】线性规划 人工变量法 ( 单纯形法总结 | 人工变量法引入 | 人工变量法原理分析 | 人工变量法案例 )
- 【运筹学】线性规划 单纯形法 阶段总结 ( 初始基可行解 | 判定最优解 | 迭代 | 得到最优解 | 全流程详细解析 ) ★
- Hibernate 学习笔记(二)—— Hibernate HQL查询和 QBC 查询
- 数据库各个派系的起源和应用场景