主要记录计算机图形学课上学的一些函数等知识
目录
前提
本人使用的是Visual Studio2022,需前往EasyX官网下载配合版本并安装。
可以配合EasyX文档使用。
正文
画布
initgraph
1、定义
// initgraph(int hight,int width,int flag) 初始化图形 可以理解成画布
// hight -> 画布的高度
// width -> 画布的宽度
// flag -> 绘画窗口的样式 默认为0 可省略
2 、使用
// 初始化一块 宽640 高480 的画布
initgraph(640, 480);
closegraph
1、定义
// closegraph()
// 无返回值 无参数
2、作用
// 关闭画布
获取位置的函数
getx
返回值为int类型,返回当前光标的x坐标。
gety
返回值为int类型,返回当前光标的y坐标。
控制画笔的函数
moveto
1、定义
// moveto(int x,int y)
// x,y -> 画布的(x,y)位置
2、作用
// 将画笔移动到(x,y)位置处
注:
官网指明该函数已废弃,仅在graphics.h中声明,不推荐使用。
moverel
1、定义
// moverel(int dx,int dy)
// dx,dy -> 当前位置要移动的x,y的值
2、作用
// 基于当前位置移动dx,dy,相对移动函数
注:
官网指明该函数已废弃,仅在graphics.h中声明,不推荐使用。
图形绘制的函数
画点
putpixel
1、定义
// putpixel(int x,int y,int color)
// x,y -> 点的坐标
// color -> 点的颜色
2、作用
// 在点(x,y)处绘制一个color颜色的点
画直线
line
1、定义
// line(int x1,int y1,int x2,int y2)
// x1,y1 -> 起始点坐标
// x2,y2 -> 终止点坐标
2、作用
// 在(x1,y1)到(x2,y2)之间画一条直线
// 此时光标依然在(x1,y1)处
lineto
1、定义
// lineto(int x,int y)
// x,y -> 终止点坐标(x,y)
2、作用
// 从当前光标位置到(x,y)之间画一条直线
// 调用完,光标处于(x,y)处
linerel
1、定义
// linerel(int dx,int dy)
// dx,dy -> 与当前光标相距的x,y值
2、作用
// 绘制一条距当前光标位置dx,dy的直线
// 函数调用玩,光标位置需更新(x+dx,y+dy)
画圆弧类
arc
1、定义
// arc(int left,int top,int right,int bottom,double stangle,double endangle) 无返回值
// left -> 圆弧所在椭圆的外切矩形的左上角 x 坐标
// top -> 圆弧所在椭圆的外切矩形的左上角 y 坐标
// right -> 圆弧所在椭圆的外切矩形的右下角 x 坐标
// bottom -> 圆弧所在椭圆的外切矩形的右下角 y 坐标
// stangle -> 圆弧起始角的弧度
// endangle -> 圆弧终止角的弧度
2、使用
// 起始为右边 逆时针画弧
// 画半圆
arc(100, 100, 0, 10,0, 3.1415926);
circle
1、定义
// circle(int x,int y,int radius) 无返回值
// x,y -> 圆心坐标
// radius -> 半径
2、作用
// 基于圆心(x,y) 半径radius 画无填充圆
pie
1、定义
// pie(int left,int top,int right,int bottom,double stangle,double endangle)
// 无返回值
// left -> 扇形所在椭圆的外切矩形的左上角 x 坐标
// top -> 扇形所在椭圆的外切矩形的左上角 y 坐标
// right -> 扇形所在椭圆的外切矩形的右下角 x 坐标
// bottom -> 扇形所在椭圆的外切矩形的右下角 y 坐标
//stangle -> 扇形的起始角的弧度
// endangle -> 扇形的终止角的弧度
2、作用
// 画扇形
画多边形
rectangle
1、定义
// rectangle(int left,int top,int right,int bottom)
// 无返回值
// left > 矩形左部 x 坐标
// top -> 矩形顶部 y 坐标
// right -> 矩形右部 x 坐标
// bottom -> 矩形底部 y 坐标
2、作用
// 画无填充的矩形
drawpoly
1、定义
// drawpoly(int numpoints,const int *polypoints)
// 无返回值
// numpoints -> 多边形顶点的个数
// polypoints -> 每个点的坐标,数组元素个数为 numpoints * 2
// 该函数会自动连接多边形首尾。
2、作用
// 画无填充的多边形
3、示例
// 绘制三角形
int a[6] = { 100,100, 50, 200, 150, 200 };
drawpoly(3, a);
文字输出的函数
outtextxy
1、定义
// outtextxy(int x,int y,LPCTSTR str)
// outtextxy(int x,int y,TCHAR c)
// x -> 字符串输出时头字母的 x 轴的坐标值
// y -> 字符串输出时头字母的 y 轴的坐标值
// str -> 待输出的字符串的指针
// c -> 待输出的字符
2、作用
// 用于指定位置输出字符串
注:
// 由于字符串编码问题 为了适应编码
// 1、输出单个字符
char a = 'a';
outtextxy(x,y,a);
// 2、输出字符串
outtextxy(x, y, L"abc");
一些特殊的函数
getch
1、定义
// getch()
// 返回值为int类型 无参数
2、作用
// 当时用getch()函数时 会等待用户在控制台界面按下任意键
// 返回按键的ASCII码值
总结
--------------------------------------------------- 分割线 -----------------------------------------------------------------
第一次上计算机图形学实验课
第一次更新此模块
第一次更新点基础的东西 有误请指正
希望下次还会继续更新
记录一下 2023/10/20
--------------------------------------------------- 分割线 -----------------------------------------------------------------
第二次上计算机图形学实验课
主要学习了DDA直线生成算法和Bresenham算法绘制直线,以及利用DDA算法画圆。
了解其画直线的原理,即直线可看似为点的集合。
2023/11/3