zoukankan      html  css  js  c++  java
  • 网易云课堂_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;
    }
    
  • 相关阅读:
    Qt 错误汇集贴
    转:Qt编写串口通信程序全程图文讲解
    转:QT 的点点滴滴 错误总结
    转:Qt项目中遇到的一些小问题汇总
    转:AM335X 启动流程
    基于Xilinx Zynq的计算处理平台
    基于英伟达Jetson TX1的GPU处理平台
    基于6U VPX的 SRIO 接口, 和PCIe 接口的msata 固态存储卡
    国芯网 邀请国产芯片原厂入驻商城
    295-Xilinx Kintex-7 X7K325T的半高PCIe x4双路万兆光纤收发卡
  • 原文地址:https://www.cnblogs.com/denggelin/p/5860822.html
Copyright © 2011-2022 走看看