図の手順に従って、easyx グラフィックス ライブラリをインストールします。
次にコードを見てみましょう。
#include<easyx.h>
#include<stdio.h>
#define width 800
#define height 600
int main()
{
initgraph(width, height); // 初始化窗口(宽度, 高度) (单位像素)
setorigin(width/2, height/2); // 设置逻辑原点为窗口中心
setaspectratio(1, -1); // 设置xy坐标轴(x:1,y:-1)代表y翻转, x不动
circle(0, 100, 100); // 画一个圆(x:0,y:100的位置,半径为100)
getchar(); //阻断一下程序,防止窗口一闪而过。
closegraph(); // 关闭窗口
return 0;
}
物理座標はウィンドウの左上隅の 0,0 にありますが、論理座標を使用するため、論理座標の原点を設定する必要があります: setorigin(width/2, height/2); //論理原点をウィンドウの中心に
その後、x 方向は左から右、y 方向は上から下となり、学校の表示戦略に準拠しません。y 方向は上から下である必要があるため、y 軸の方向を設定します。 : setaspectratio(1, -1); // y が反転し、x が移動しないことを表す xy 座標軸 (x: 1, y: -1) を設定します。
次のステップは、円を描画することです: Circle(0, 0, 100); // 以下の図に示すように、円 (位置 x: 0、y: 0、半径 100) を描画します。
4点を引くと以下のようになります。
#include<easyx.h>
#include<stdio.h>
#define width 800
#define height 600
int main()
{
initgraph(width, height); // 初始化窗口(宽度, 高度) (单位像素)
setorigin(width / 2, height / 2); // 设置逻辑原点为窗口中心
setaspectratio(1, -1); // 设置xy坐标轴(x:1,y:-1)代表y翻转, x不动
putpixel(100,100, RED); //画一个点(x:100, y:100, 红色)
putpixel(100, -100, YELLOW); //画一个点(x:100, y:-100, 黄色)
putpixel(-100, -100, GREEN); //画一个点(x:-100, y:-100, 绿色)
putpixel(-100, 100, BLUE); //画一个点(x:-100, y:100, 蓝色)
getchar();
closegraph();
return 0;
}
上記の学習に従って、次に 1000 個のランダムな点を描画します。
#include<easyx.h>
#include<stdio.h>
#define width 1200 // 窗口宽度
#define height 960 // 窗口高度
#include<time.h>
int main()
{
srand((unsigned int)time(NULL));
initgraph(width, height); // 初始化窗口(宽度, 高度) (单位像素)
setorigin(width / 2, height / 2); // 设置逻辑原点为窗口中心
setaspectratio(1, -1); // 设置xy坐标轴(x:1,y:-1)代表y翻转, x不动
int i = 0;
for (i = 0; i < 1000; i++) // 绘制1000个点,位置随机
{
int x = rand() % (width + 1) - width / 2;
int y = rand() % (height + 1) - height / 2;
putpixel(x, y, GREEN); //画一个点(x:100, y:100, 红色)
}
putpixel(100, -100, YELLOW); //画一个点(x:100, y:-100, 黄色)
putpixel(-100, -100, GREEN); //画一个点(x:-100, y:-100, 绿色)
putpixel(-100, 100, BLUE); //画一个点(x:-100, y:100, 蓝色)
getchar();
closegraph();
return 0;
}
直線 (始点 x、始点 y、終点 x、終点 y):
線を引く:
#include<easyx.h>
#include<stdio.h>
#define W 900 // 窗口宽度
#define H 600 // 窗口高度
int main()
{
initgraph(W, H);
setaspectratio(1,-1);
setorigin(W / 2, H / 2);
line(-200, 200, 200, -200); // 从坐标-200, 200 到坐标200, -200画一条线
getchar();
closegraph();
return 0;
}
次に、circle 関数を使用してブルズアイを描画します。
#include<easyx.h>
#include<stdio.h>
#define W 900
#define H 700
int main()
{
initgraph(W, H);
setorigin(W/2,H/2);
setaspectratio(1, -1);
int i = 0;
for (i = 10; i <= 300; i += 10)
{
circle(0, 0, i);
}
getchar();
closegraph();
return 0;
}
次に、長方形関数の描画方法を学びます。
長方形 (左上隅の x 座標、左上隅の y 座標、右下隅の x 座標、右下隅の y 座標)
#include<easyx.h>
#include<stdio.h>
#define W 800
#define H 600
int main()
{
initgraph(W, H);
setorigin(W / 2, H / 2);
setaspectratio(1, -1);
rectangle(-200, 200, 200, -200);
getchar();
closegraph();
return 0;
}
楕円関数の書き方を学びましょう:
楕円(左上隅のx座標、左上隅のy座標、右下隅のx座標、右下隅のy座標)
#include<easyx.h>
#include<stdio.h>
#define W 800
#define H 600
int main()
{
initgraph(W, H);
setorigin(W / 2, H / 2);
setaspectratio(1, -1);
ellipse(-200, 100, 200, -100);
getchar();
closegraph();
return 0;
}
角丸長方形の描き方を学びましょう:
角丸長方形の 4 つの丸い角は、実際には 4 つの楕円で構成されます。
#include<easyx.h>
#include<stdio.h>
#define W 800
#define H 600
int main()
{
initgraph(W, H);
setorigin(W / 2, H / 2);
setaspectratio(1, -1);
roundrect(-200, 100, 200, -100, 200, 100);
getchar();
closegraph();
return 0;
}
セクター関数をプロットします。
#include<easyx.h>
#include<stdio.h>
#define W 800
#define H 600
#define PI 3.14
int main()
{
initgraph(W, H);
setorigin(W / 2, H / 2);
setaspectratio(1, -1);
pie(-200, 100, 200, -100, 0, PI/4);
getchar();
closegraph();
return 0;
}
円弧関数を描画します。
#include<easyx.h>
#include<stdio.h>
#define W 800
#define H 600
#define PI 3.14
int main()
{
initgraph(W, H);
setorigin(W / 2, H / 2);
setaspectratio(1, -1);
arc(-200, 100, 200, -100, 0, PI / 4);
getchar();
closegraph();
return 0;
}