回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【花雕动手做】Kitronik 可编程开发板基于 ARCADE MakeCode 之布雷森纳姆圆环 简单

头像 驴友花雕 2025.09.13 4 0

Kitronik ARCADE 是一款由英国教育科技公司 Kitronik 精心打造的可编程游戏机开发板,专为编程教学与创客实践而设计。该设备原生支持微软的 MakeCode Arcade 平台,用户可通过图形化或 JavaScript 编程方式,轻松创建、下载并运行复古风格的街机游戏。

它集成了彩色 LCD 显示屏、方向控制键、功能按键、蜂鸣器和震动马达等交互组件,提供完整的游戏输入输出体验。无论是初学者进行编程启蒙,还是创客群体开发交互式作品,Kitronik ARCADE 都能作为理想的硬件载体,助力创意实现。

凭借其开源友好、易于上手、兼容性强等特点,该开发板广泛应用于中小学编程课程、创客工作坊、游戏开发教学以及个人项目原型设计,深受教育者与技术爱好者的喜爱。

 

00 (2).jpg
00 (3).jpg
00 (4).jpg

作为学习、练习与尝试,这里创建一个布雷森纳姆圆环的小游戏。
打开网页版:https://arcade.makecode.com/,设置项目名称:布雷森纳姆圆环

 

117.jpg

 

MicroPython实验代码

 

代码
y = 0
x = 0
radius = 0
d = 0
cx = 31
cy = 31
grow = True
circle = image.create(64, 64)
circleSprite = sprites.create(circle, 0)

def on_forever():
    global d, x, y, radius, grow
    circle.fill(6)
    d = 3 - 2 * radius
    x = 0
    y = radius
    while x <= y:
        circle.set_pixel(cx + x, cy + y, 4)
        circle.set_pixel(cx + x, cx - y, 4)
        circle.set_pixel(cx - x, cx + y, 4)
        circle.set_pixel(cx - x, cy - y, 4)
        circle.set_pixel(cx + y, cy + x, 4)
        circle.set_pixel(cx + y, cy - x, 4)
        circle.set_pixel(cx - y, cy + x, 4)
        circle.set_pixel(cx - y, cy - x, 4)
        if d <= 0:
            d += 4 * x + 6
        else:
            y += -1
            d += 4 * (x - y) + 10
        x += 1
    if grow:
        radius += 1
    else:
        radius += 0 - 1
    if radius > 31:
        grow = False
    elif radius < 1:
        grow = True
    pause(100)
forever(on_forever)

这段代码是用 MakeCode Arcade 编写的一个图形演示程序,利用 布雷森纳姆圆算法(Bresenham Circle Algorithm) 在屏幕上绘制一个动态变化的圆环。它展示了如何在像素图像中高效绘制圆形,并通过半径的增减实现“呼吸式”动画效果。解读如下:

一、布雷森纳姆圆算法简介
布雷森纳姆算法是一种用于在栅格图像中绘制圆形的经典算法。它通过整数运算和对称性,避免使用浮点计算,从而高效地确定哪些像素应被填充。
圆的基本方程:$𝑥2+𝑦2=𝑟2$

由于圆具有八向对称性,只需计算一个八分之一圆的点,然后复制到其他七个区域。

二、代码结构解析
1、初始化变量
python
y = 0
x = 0
radius = 0
d = 0
cx = 31
cy = 31
grow = True
circle = image.create(64, 64)
circleSprite = sprites.create(circle, 0)
cx, cy:圆心坐标(图像中心)

radius:当前圆半径

d:决策参数,用于判断下一个像素位置

circle:创建一个 64×64 的图像作为绘图画布

circleSprite:将图像作为精灵显示在屏幕上

2、主循环逻辑
python
def on_forever():
   ...
forever(on_forever)
每 100 毫秒执行一次,绘制一个新的圆形

圆的半径在 1 到 31 之间循环变化,形成“呼吸”动画

3、圆形绘制核心
python
d = 3 - 2 * radius
x = 0
y = radius
while x <= y:
   circle.set_pixel(cx + x, cy + y, 4)
   ...
   if d <= 0:
       d += 4 * x + 6
   else:
       y -= 1
       d += 4 * (x - y) + 10
   x += 1
使用布雷森纳姆算法计算圆的边缘像素位置

利用对称性绘制八个方向的点

set_pixel(x, y, 4) 将像素设为颜色编号 4(通常是红色)

4、半径动态变化
python
if grow:
   radius += 1
else:
   radius -= 1
if radius > 31:
   grow = False
elif radius < 1:
   grow = True
控制圆的半径在 1 到 31 之间来回变化

实现动态扩张与收缩的视觉效果。

图形编程参考实验程序

 

118.jpg
 

通过模拟器,调试与模拟运行

 

00209---0.gif

实验场景记录

 

119 (1).jpg
119 (2).jpg
119 (3).jpg

评论

user-avatar
icon 他的勋章
    展开更多