编程实现:
雷达图可以展示一个人物多个维度的能力,如图所示。
雷达图的中心点表示零值,从中心点向外发散六条轴线代表六个能力,每条轴线上有多个刻度,代表能力值,其中最大值为 100。
例如:某游戏角色的速度、力量、防守、攻击、技能、经验的能力值分别为 20、100、80、80、60、40,他的能力雷达图如下所示:
请你根据以上信息以及一个游戏角色的各项能力值制绘制出他的能力雷达图。
具体要求:
1). 点击绿旗,在舞台中间位置呈现由 5 个嵌套的正六边形及 6 条轴线组成的雷达图(线的颜色为黑色,粗细为 1),相邻两个正六边片的轴线间距为 20,最小的正六边形边长为 20,最大的正六形边长为 100,如图所示(雷达图 6 个项点的文字自行添加);
2). 1 秒后,出现滑杆形式的变量速度、力量、防守、攻击、技能、经验,初始值依次为20、100、80、80、60、40,表示角色的各项能力值,所有变量的取值范围都为 0~100,如图所示;
3). 1 秒后,根据各能力变量的值,绘制该角色的能力雷达图(新绘制出的多边形为红色,线的粗细为 3),如图所示;
4). 每次用鼠标拖动任意一个滑杆,改变能力值的大小,都会实时呈现出当前能力的雷达图,如图所示。
分析:本题目拆解核心可以分为三个部分
1、雷达图的绘制,在我之前的文章中有过专门的讲解,大家可以搜一下,思路就是画正三角形,然后旋转一周得到一个六边形,然后改变三角形边长,再重复上述操作。
2、画能力图,也就是将各个能力值的点连接起来,需要用到坐标转换的知识,因为每条边上的能力值就是长度,角度间隔60
3、动态更新能力图,需要用到自制积木,勾选运行时不刷新。
实现步骤:
1、添加一个背景,删除默认角色,分别绘制角色:速度、力量、防守、攻击、技能、经验,还有一个空白的画笔角色,如图
2、制作新积木“画雷达图”
(1)开始定义,创建变量“边长”,初始值为20,初始化画笔
(2)画正三角形,然后旋转一周(重复执行6次,改变方向)得到一个六边形

(3)再改变三角形边长,重复5次,完成雷达图绘制,抬笔
3、点击绿旗,使用自制积木,在舞台中间位置呈现由 5 个嵌套的正六边形及 6 条轴线组成的雷达图

4、创建变量:速度、力量、防守、攻击、技能、经验,初始值依次为20、100、80、80、60、40,让变量显示
5、将变量切换为滑杆,所有变量的取值范围都为 0~100,如图所示
6、制作新积木“画能力图”
(1)初始化画笔,我将经验作为第一个能力点,方向90°,距离中心点的距离就是经验值20
(2)逆时针依次移动到下一个坐标点,例如技能,他的极坐标为(80,60)80为能力值,60为与水平方向的夹角,根据极坐标转换为直角坐标的公式可以得它的x,y坐标值,如图:



(3)同样的方式,按照顺序依次移动到下一个点,完成整个能力图的绘制。
7、等待1秒,使用“画能力图”积木,完成能力图绘制,因为要根据变量变化,改变能力图,所以会使用重复执行
8、如果此时改变变量滑块,能看图虽然可以发生变化,但是之前的线条依然存在,所以需要在能力图的定义中擦除之前的,重新绘制,修改如图(擦除全部也会把雷达图擦掉,所以需要再次绘制)

9、为了每次运行都达到同样的效果,再增加一段程序,让程序开始执行时先隐藏滑块变量,这样完整的程序就完成了。
程序源码下载:Scratch图形化编程青少组(国赛_初中级)真题:能力雷达图
本站内容未经许可,禁止任何网站及个人进行转载。







