网易云课堂_C++程序设计入门(上)_第2单元:丹青画松石– EGE图形库
第2节:一个简单的EGE程序
#ifndef _GRAPHICS_H_
#define _GRAPHICS_H_
#ifndef __cplusplus
#error You must use C++ compiler, or you need filename with '.cpp' suffix
#endif
#include "ege.h"
using namespace ege;
#endif #include <iostream>
#include <graphics.h> void main()
{
initgraph(640, 480);//创建绘图窗口 outtextxy(100, 300, "aloha world");//在指定坐标向右输出字符串
line(10, 10, 400, 400);//在指定坐标输出线段 ege::getch();//等待输入字符
closegraph();//关闭绘图窗口
}
第3节:EGE的输入输出
画出椭圆,填充颜色,并随机变化颜色
#include <graphics.h>
void mainloop()
{
//is_run检测程序是否收到关闭消息
//收到则返回false,退出程序
//delay_fps 控制帧率,60表示
//平均延时”为1000/60毫秒
for (; is_run(); delay_fps(60))
{
// todo: 逻辑更新
setfillcolor(EGERGB(random(255), random(255), random(255)));//设置颜色
// todo: 图形更新
// 清屏
cleardevice();
fillellipse(200, 200, 50, 30);//输出椭圆,前两个参数是圆心的坐标,后两个参数是长轴和短轴的半径
}
} int main(void)
{
//INIT_DEFAULT ege默认配置
//INIT_NOFORCEEXIT 由程序本身检测和控制结束
//INIT_RENDERMANUAL与setrendermode(RENDER_MANUAL)等效
setinitmode(INIT_DEFAULT|INIT_NOFORCEEXIT);
//图形初始化,窗口尺寸640x480
initgraph(640, 480);
//随机数初始化,如果需要使用随机数的话
randomize();
//绘图更新模式设置为手动,仅调用delay_fps/delay_ms
//等函数时才刷新,避免闪烁。在RENDER_AUTO模式下,任
//何绘图操作进行时都可能刷新,甚至刚cleardevice就显示
//导致屏幕上有时仅显示一个背景而没有其它内容导致闪烁
setrendermode(RENDER_MANUAL);
// 程序主循环
mainloop();
closegraph();
return 0;
}
画出圆,并移动
#include <graphics.h>
void mainloop()
{
// 动画控制变量,控制横坐标,初始值为0
int x = 0;
setcolor(EGERGB(0, 0xFF, 0));//设置绘图线条颜色
setfillcolor(EGERGB(0, 0, 0xFF));//设置填充颜色 for ( ; is_run(); delay_fps(60) )
{
// todo: 逻辑更新
//计算新坐标,右移一个像素,若等于440则移回x=0
x = ( x + 1 ) % 440; // todo: 图形更新
//清屏,重新在新的位置绘图图像
cleardevice();
//圆心坐标是 (x + 半径)
fillellipse(x + 100, 200, 100, 100);
}
} int main()
{
//INIT_ANIMATION相当于INIT_NOFORCEEXIT|
// INIT_DEFAULT|INIT_RENDERMANUAL
//下面就不需要再多一步setrendermode
setinitmode(INIT_ANIMATION);
// 图形初始化,窗口尺寸640x480
initgraph(640, 480);
// 随机数初始化,如果需要使用随机数的话
randomize();
// 程序主循环
mainloop();
// 关闭绘图设备
closegraph();
return 0;
}
网易云课堂_C++程序设计入门(上)_第2单元:丹青画松石– EGE图形库的更多相关文章
- 网易云课堂_C++程序设计入门(上)_第6单元:丹枫虽老犹多态–继承与多态_第6单元作业【2】- 在线编程(难度:中)
第6单元作业[2]- 在线编程(难度:中) 查看帮助 返回 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统 ...
- 网易云课堂_C++程序设计入门(上)_第1单元:C++概览_第1单元作业 - 写代码 - 互评 (难度:易)
第1单元作业 - 写代码 - 互评 (难度:易) 查看帮助 返回 提交作业(截止时间已过) 完成并提交作业 作业批改 互评训练 互评作业 自评作业 成绩公布 查看成绩 温 ...
- 网易云课堂_C++程序设计入门(上)_第5单元:万类霜天竞自由 – 对象和类的更多内容_第5单元作业【4】 - 在线编程(难度:难)
第5单元作业[4] - 在线编程(难度:难) 查看帮助 返回 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系 ...
- 网易云课堂_C++程序设计入门(上)_第4单元:物以类聚 – 对象和类_第4单元作业【3】- 在线编程(难度:难)
1 在本单元作业[1]和作业[2]的基础上,创建一个MyRectangle类,并在main函数中创建类的实例.(10分) 题目难度: 难 题目内容: Screen类: 与作业[2]要求完全相同. 如果 ...
- 网易云课堂_C++程序设计入门(上)_第3单元:更上一层楼 – 超越C的语法_第3单元作业【3】-在线编程(难度:中;10分)
1 本题要求实现两个重载的swap函数,每个swap函数都可交换3个整数a,b,c的值.将a的值存入b,b的值存入c,c的值存入a, 并且返回三个整数中最大的数的值.例如a,b,c的值为1,2,3,则 ...
- 网易云课堂_C++程序设计入门(下)_第7单元:出入虽同趣,所向各有宜 – 文件输入和输出_第7单元 - 作业2:编程互评
第7单元 - 作业2:编程互评 查看帮助 返回 提交作业(剩余10天) 完成并提交作业 作业批改 互评训练 互评作业 自评作业 成绩公布 查看成绩 由于在线编程不支持 ...
- 网易云课堂_C++程序设计入门(下)_第11单元:工欲善其事必先利其器 - STL简介_第11单元 - 单元作业2:OJ编程 - list 与 deque
第11单元 - 单元作业2:OJ编程 - list 与 deque 查看帮助 返回 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之 ...
- 网易云课堂_C++程序设计入门(下)_第10单元:月映千江未减明 – 模板_第10单元 - 单元作业:OJ编程 - 创建数组类模板
第10单元 - 单元作业:OJ编程 - 创建数组类模板 查看帮助 返回 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提 ...
- 网易云课堂_C++程序设计入门(下)_第9单元:白公曾咏牡丹芳,一种鲜妍独“异常”_第9单元 - 作业5:OJ编程 - 使用异常进行图形类的错误处理
第9单元 - 作业5:OJ编程 - 使用异常进行图形类的错误处理 查看帮助 返回 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前 ...
随机推荐
- 括号匹配问题(C++、堆栈)
原文地址:http://www.cppblog.com/GUO/archive/2010/09/12/126483.html /* 括号匹配问题,比较经典,利用堆栈来实现(摘自internet) 1. ...
- ubuntu Linux离线安装软件包
ubuntu Linux离线安装软件包 http://www.myir-tech.com/bbs/thread-337-1-1.html(出处: 米尔科技论坛) 方法一 在可上网的ubuntu电脑上, ...
- HDUJ 1754 I Hate It
I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- vs在线工具杂烩
http://visualstudiogallery.msdn.microsoft.com/site/search?f%5B0%5D.Type=RootCategory&f%5B0%5D.Va ...
- 使用 React 和 Flux 创建一个记事本应用
React,来自 Facebook,是一个用来创建用户界面的非常优秀的类库.唯一的问题是 React 不会关注于你的应用如何处理数据.大多数人把 React 当做 MV* 中的 V.所以,Facebo ...
- css设置
box-size允许您以特定的方式定义匹配某个区域的特定元素. content-box(默认):宽度和高度分别应用到元素的内容框.在宽度和高度之外绘制元素的内边距和边框.border-box:为元素设 ...
- DEVC++生成DLL的方法
通过网上一个MD5加密算法源码生成DLL 一.建立DLL项目并编译 DEVC++创建C项目,选择DLL, 一共4个文件及源码如下: dll.h dllmain.c md5.c md5.h 函数参数: ...
- Linux命令备忘录
1.tar命令 解压tar.gz格式压缩包:tar zxvf xxx.tar.gz 解压tar.bz2格式压缩包:tar jxvf xxx.tar.bz2 压缩为tar.gz格式压缩包:tar zcv ...
- 2、vector的实现
看侯捷老师的<STL源码剖析>有一段时间了,打算自己整理一下思路,试着实现一下.主要目的有两个:1.巩固自己对源码的理解,让自己更加深刻的体会其中各种机制的奥妙.别人的知识 ...
- html 调用 activeX(c++)
1.新建MFC ActiveX 2.添加方法 3.找到add函数编写代码 4.在test.idl中找到最后一个uuid 5.编译工程,会自动注册控件 6.html中的代码 <html> & ...