设计排序可视化()

1.

Releases

在此网站下载opencv 4.5.5库

2.安装opencv

https://blog.csdn.net/m0_47472749/article/details/111328183https://blog.csdn.net/CaiSenNan/article/details/119789519

3.预计结果:用户输入一个数组;

屏幕整体背景纯黑,在屏幕左右显示两个纯白色方框,框中是代表数字的矩形,其中一个方框下有纯白色箭头;在方框中央设计一个图案,每当用户点击此图案,则算法展示一步;我们称视有白色箭头的边框为当前边框;假设当前方框为A,每运行一步,就将新的画面展示在B上,A框数据不变,但失去箭头,B边框得到箭头;方框中的内容:一排矩形,全部为黑色边框,但B中与A中相比发生了”改变“的矩形应在上方有箭头指示。此处的“改变”:例如在冒泡,选择,插入排序中swap操作的对象。

4.设计矩形:考虑到输入数据的范围,我们用结构体来储存矩形

struct num {
    double val;
    double high;
    double width;
};

分别表示值的大小,矩形的高和宽

5.计算矩形大小:

设置最高高度H_MAX,最大宽度W_MAX

首先进行一次排序;

设输入的数组是a,长度len,将a排序以后从小到大放到res数组,从res中寻找a中每一个元素,记a[i]对应res[j],H_MAX*j/n就是该矩形的高度;

a中元素a[x]的矩形宽度是(x+1)/len(a)*W_MAX;

6.如何绘制方框:

OpenCV: Basic Drawing

7.如何获取用户的点击:

————————

1.

Releases

在此网站下载opencv 4.5.5库

2.安装opencv

https://blog.csdn.net/m0_47472749/article/details/111328183https://blog.csdn.net/CaiSenNan/article/details/119789519

3.预计结果:用户输入一个数组;

屏幕整体背景纯黑,在屏幕左右显示两个纯白色方框,框中是代表数字的矩形,其中一个方框下有纯白色箭头;在方框中央设计一个图案,每当用户点击此图案,则算法展示一步;我们称视有白色箭头的边框为当前边框;假设当前方框为A,每运行一步,就将新的画面展示在B上,A框数据不变,但失去箭头,B边框得到箭头;方框中的内容:一排矩形,全部为黑色边框,但B中与A中相比发生了”改变“的矩形应在上方有箭头指示。此处的“改变”:例如在冒泡,选择,插入排序中swap操作的对象。

4.设计矩形:考虑到输入数据的范围,我们用结构体来储存矩形

struct num {
    double val;
    double high;
    double width;
};

分别表示值的大小,矩形的高和宽

5.计算矩形大小:

设置最高高度H_MAX,最大宽度W_MAX

首先进行一次排序;

设输入的数组是a,长度len,将a排序以后从小到大放到res数组,从res中寻找a中每一个元素,记a[i]对应res[j],H_MAX*j/n就是该矩形的高度;

a中元素a[x]的矩形宽度是(x+1)/len(a)*W_MAX;

6.如何绘制方框:

OpenCV: Basic Drawing

7.如何获取用户的点击: