第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图形库的更多相关文章

  1. 网易云课堂_C++程序设计入门(上)_第6单元:丹枫虽老犹多态–继承与多态_第6单元作业【2】- 在线编程(难度:中)

    第6单元作业[2]- 在线编程(难度:中) 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统 ...

  2. 网易云课堂_C++程序设计入门(上)_第1单元:C++概览_第1单元作业 - 写代码 - 互评 (难度:易)

    第1单元作业 - 写代码 - 互评 (难度:易) 查看帮助 返回   提交作业(截止时间已过) 完成并提交作业     作业批改 互评训练   互评作业   自评作业     成绩公布 查看成绩 温 ...

  3. 网易云课堂_C++程序设计入门(上)_第5单元:万类霜天竞自由 – 对象和类的更多内容_第5单元作业【4】 - 在线编程(难度:难)

    第5单元作业[4] - 在线编程(难度:难) 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系 ...

  4. 网易云课堂_C++程序设计入门(上)_第4单元:物以类聚 – 对象和类_第4单元作业【3】- 在线编程(难度:难)

    1 在本单元作业[1]和作业[2]的基础上,创建一个MyRectangle类,并在main函数中创建类的实例.(10分) 题目难度: 难 题目内容: Screen类: 与作业[2]要求完全相同. 如果 ...

  5. 网易云课堂_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,则 ...

  6. 网易云课堂_C++程序设计入门(下)_第7单元:出入虽同趣,所向各有宜 – 文件输入和输出_第7单元 - 作业2:编程互评

    第7单元 - 作业2:编程互评 查看帮助 返回   提交作业(剩余10天) 完成并提交作业     作业批改 互评训练   互评作业   自评作业     成绩公布 查看成绩   由于在线编程不支持 ...

  7. 网易云课堂_C++程序设计入门(下)_第11单元:工欲善其事必先利其器 - STL简介_第11单元 - 单元作业2:OJ编程 - list 与 deque

    第11单元 - 单元作业2:OJ编程 - list 与 deque 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之 ...

  8. 网易云课堂_C++程序设计入门(下)_第10单元:月映千江未减明 – 模板_第10单元 - 单元作业:OJ编程 - 创建数组类模板

    第10单元 - 单元作业:OJ编程 - 创建数组类模板 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提 ...

  9. 网易云课堂_C++程序设计入门(下)_第9单元:白公曾咏牡丹芳,一种鲜妍独“异常”_第9单元 - 作业5:OJ编程 - 使用异常进行图形类的错误处理

    第9单元 - 作业5:OJ编程 - 使用异常进行图形类的错误处理 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前 ...

随机推荐

  1. UESTC_秋实大哥带我飞 2015 UESTC Training for Graph Theory<Problem B>

    B - 秋实大哥带我飞 Time Limit: 300/100MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit ...

  2. Binary Tree Zigzag Level Order Traversal 解答

    Question Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, fro ...

  3. Unique Binary Search Trees 解答

    Question Given n, how many structurally unique BST's (binary search trees) that store values 1...n? ...

  4. python连续爬取多个网页的图片分别保存到不同的文件夹

      python连续爬取多个网页的图片分别保存到不同的文件夹 作者:vpoet mail:vpoet_sir@163.com #coding:utf-8 import urllib import ur ...

  5. 探索PHP+Nginx(一) 安装Linux操作系统

    每次学习一种新的开发语言的时候,都要经历一个很纠结的过程,除非你运气很好或者准备工作充分,否则你在这个过程中总会耗费大量的时间和精力,当然你也会受益很多.而这个过程就是,开发环境的基础搭建,看似是装几 ...

  6. 类linux系统/proc/sysrq-trigger文件功能作用

    立即重启计算机      echo "b" > /proc/sysrq-trigger 立即关闭计算机      echo "o" > /proc/ ...

  7. C pointers

    指向整型数组指针int (*p)[10] = matrix;增加这个指针的值使它指向下一个整型数组 指向整型指针int *pi = &matrix[0][0];int *pi = &m ...

  8. 【MSP是什么】MSP认证之项目管理与项目群管理的区别

    通常所说的项目管理是指运用各种相关知识.技能.方法与工具,为满足或超越项目有关各方对项目的要求与期望,所开展的各种计划.组织.领导.控制等方面的活动.具体包括项目范围管理.项目时间管理.项目成本管理. ...

  9. PHP 超强过滤函数

    PHP 超强过滤函数 你有每次要过滤的时候总是去翻曾经的过滤代码的时候么? 你有搜索过怎样防过滤,防攻击的PHP解决方法么? 你有对全然遵循'过滤输入,避免输出',Web界经典说辞么?     事实上 ...

  10. hdu1753()模拟大型实景数字相加

    标题信息: 手动求大的实数在一起, pid=1753">http://acm.hdu.edu.cn/showproblem.php?pid=1753 AC代码: /**  *大实数相加 ...