《每日一刻圖形編程篇》-界面編程
閱讀須知:
工具:Visual Studio 2013/VC 6.00 (其他版本亦可)+EasyX(圖形庫插件)
素材: C/C++ 491994603 找小編即可 (群主或者專業答疑老師)
能力:C語言基礎,熟悉switch和二維數組,無色盲.四肢健全者
First:
圖形編程的窗口,C/C++沒有屬於自己的窗口,借用的是dos窗口,所以我們要自己創建一個屬於自己的繪圖窗口,相當於畫布.畫布準備好了,你要想清楚如何去畫圖,小時候大家可以用尺子去繪圖,那麼現在的話我們可以要知道一個座標問題,就是圖形窗口座標.好了不多說上代碼.
圖形窗口基本框架
#include <stdio.h>
}
#include <stdlib.h>//system
#include <graphics.h>//圖形庫的頭文件
int main()//主函數
{
//圖形窗口
//窗口大小
//400,400
initgraph(800, 400);//圖形窗口得大小 數字表示寬和高
getchar();
//用完後關閉窗口就可以了
closegraph();//關閉圖形窗口
//system("pause");//防止閃屏
return 0;
程序效果:
注意:圖中箭頭和字是由小編加上去的,你需要清楚知道窗口座標系統.所有繪圖函數都是通過(x,y)定位繪製.
Second:
繪圖畫布大家準備好後,接下來就是準備畫筆.畫筆可以相當於繪圖函數
簡單介紹幾個函數:
line(int x,int y,int xx,int yy) 從(x,y)畫到(xx,yy)線
rectangle(int x,int y,int xx,int yy) 矩形的左上角座標(x,y),右下角座標(xx,yy)
setbkcolor(RED) 設置背景顏色
.......還有很多,在這裡不做過多敘述
#include <graphics.h>
/*
無法識別
缺少圖形庫插件---找解答老師
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
initgraph(400, 400);
//
//繪圖函數----->線段
line(0, 0, 400, 400);
//畫矩形
rectangle(200, 200, 300, 300);
getchar();//防止閃屏
closegraph();
return 0;
}
程序效果:
Third:
界面實戰:莫影老師後宮管理系統
上圖:
代碼如下:
#include <graphics.h>
#include <stdio.h>
//沒有學過函數;子函數,自己定義的
void menu()
{
//貼圖第一步:聲明圖片
IMAGE backgroundimg;
IMAGE menuimg;
loadimage(&backgroundimg, "bkimage.jpg",600,400);
loadimage(&menuimg, "image.jpg", 200, 50);
putimage(0, 0, &backgroundimg);
for (int i = 0; i < 4; i++)
{
putimage(200, 80+i*50, &menuimg);
}
settextcolor(BLACK);//設置文字顏色
settextstyle(30, 0, "銳字雲字庫行楷體1.0");//設置字的樣式
//使用透明的方式,去掉文字背景
setbkmode(TRANSPARENT);
outtextxy(100, 20, "潭州C++研究院莫影的後宮管理系統");
outtextxy(250, 95, "1級水準");
outtextxy(250, 95+50, "2級水準");
outtextxy(250, 95+100, "3級水準");
outtextxy(250, 95+150, "4級水準");
}
int main()
{
initgraph(600, 400);
menu();
getchar();
closegraph();
return 0;
}
Last:
界面實戰:五子棋界面設計
上圖:
代碼如下:
#include <graphics.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h> //kbhit()
//玩遊戲界面
void playGameBackground()
{
IMAGE background;
loadimage(&background, "gamebackground.jpg");
initgraph(1023,548);
putimage(0, 0, &background);
setlinecolor(BLACK);
for (int i = 10; i <= 530; i += 20)
{
line(10, i, 530, i);
line(i, 10, i, 530);
}
setlinestyle(PS_SOLID, 4);
rectangle(10, 10, 530, 530);
for (int i = 4; i < 26;i+=9)
for (int j = 4; j < 26; j += 9)
{
setfillcolor(BLACK);
circle(10 + i * 20, 10 + j * 20, 2);
}
}
int main()
{
playGameBackground();
system("pause");
return 0;
}