杨校老师课堂之C++备战全国青少年科技教育成果展示大赛(一)
备战青科赛
赛事描述
主题:“科技强国・未来有我”。 目标: 坚持立德树人根本任务,培养具有家国情怀、崇尚科学的新时代好少年。 宗旨: 彰显公益普惠风尚,助力全面实施素质教育,为建设高质量教育体系贡献力量。
比赛内容
知识储备 (一)
任务1 绘制正方形
int main(){
// 让画笔向前移动100个单位距离
pen.fd(100);
// 让画笔向右旋转90度
pen.rt(90);
// 让画笔向前移动200个单位距离
pen.fd(200);
// 让画笔向右旋转90度
pen.rt(90);
// 让画笔向前移动100个单位距离
pen.fd(100);
// 让画笔向右旋转90度
pen.rt(90);
// 让画笔向前移动200个单位距离
pen.fd(200);
// 让画笔向右旋转90度
pen.rt(90);
// 程序正常结束,返回值0表示程序执行成功
return 0;
}
任务2 绘制帽子
int main(){
// 控制画笔向右旋转90度
pen.rt(90);
// 控制画笔向前移动100个单位距离
pen.fd(100);
// 控制画笔向左旋转90度
pen.lt(90);
// 控制画笔向前移动100个单位距离
pen.fd(100);
// 控制画笔向右旋转90度
pen.rt(90);
// 控制画笔向前移动200个单位距离
pen.fd(200);
// 控制画笔向右旋转90度
pen.rt(90);
// 控制画笔向前移动100个单位距离
pen.fd(100);
// 控制画笔向左旋转90度
pen.lt(90);
// 控制画笔向前移动100个单位距离
pen.fd(100);
// 控制画笔向后移动300个单位距离
pen.bk(300);
// 程序正常结束,返回值0表示程序执行成功
return 0;
}
任务3 绘制万花筒
int main() {
// 隐藏画笔,这样在绘图过程中不会显示画笔的样式
p.hide();
// 设置画笔的大小为100,设置画笔颜色为2(颜色值可能根据具体绘图库的定义来确定)
// 并将画笔移动到坐标 (0, 0) 的位置
p.size(100);
p.color(2);
p.moveTo(0, 0);
// 绘制一个边长为300的正方形
p.fd(300); // 画笔向前移动300个单位
p.rt(90); // 画笔向右旋转90度
p.fd(300); // 画笔向前移动300个单位
p.rt(90); // 画笔向右旋转90度
p.fd(300); // 画笔向前移动300个单位
p.rt(90); // 画笔向右旋转90度
p.fd(300); // 画笔向前移动300个单位
p.rt(90); // 画笔向右旋转90度
// 再次设置画笔的大小为100,设置画笔颜色为3
// 并将画笔移动到坐标 (50, 50) 的位置
p.size(100);
p.color(3);
p.moveTo(50, 50);
// 绘制一个边长为200的正方形
p.fd(200); // 画笔向前移动200个单位
p.rt(90); // 画笔向右旋转90度
p.fd(200); // 画笔向前移动200个单位
p.rt(90); // 画笔向右旋转90度
p.fd(200); // 画笔向前移动200个单位
p.rt(90); // 画笔向右旋转90度
p.fd(200); // 画笔向前移动200个单位
p.rt(90); // 画笔向右旋转90度
// 又一次设置画笔的大小为100,设置画笔颜色为4
// 并将画笔移动到坐标 (100, 100) 的位置
p.size(100);
p.color(4);
p.moveTo(100, 100);
// 绘制一个边长为100的正方形
p.fd(100); // 画笔向前移动100个单位
p.rt(90); // 画笔向右旋转90度
p.fd(100); // 画笔向前移动100个单位
p.rt(90); // 画笔向右旋转90度
p.fd(100); // 画笔向前移动100个单位
p.rt(90); // 画笔向右旋转90度
p.fd(100); // 画笔向前移动100个单位
p.rt(90); // 画笔向右旋转90度
// 程序正常结束,返回值0表示程序执行成功
return 0;
}
知识储备(二)
任务1 绘制双螺旋
int main() {
// 将画笔移动到坐标为 (-200, 0) 的位置,确定绘图的起始点
pen.moveTo(-200, 0);
// 开始第一个循环,循环5次,用于绘制特定形状的一部分
for (int i = 0; i < 5; i++) {
// 画笔向前移动50个单位距离,然后向右旋转90度
pen.fd(50).rt(90);
// 画笔继续向前移动50个单位距离,然后向左旋转90度
pen.fd(50).lt(90);
}
// 画笔向左旋转180度,改变画笔的方向
pen.lt(180);
// 开始第二个循环,同样循环5次,用于绘制与前面形状对称的另一部分
for (int i = 0; i < 5; i++) {
// 画笔向前移动50个单位距离,然后向右旋转90度
pen.fd(50).rt(90);
// 画笔继续向前移动50个单位距离,然后向左旋转90度
pen.fd(50).lt(90);
}
// 程序正常结束,返回值0表示程序执行成功
return 0;
}
任务2 绘制计时器
int main() {
// 调用 pen 对象的 rr 方法,传入参数 200、100 和 14
// rr 方法是绘制实心矩形操作
pen.rr(200, 100, 14);
// 再次调用 pen 对象的 rr 方法,传入参数 160、80 和 0
// 同样是进行绘制操作,可能绘制的图形与上面的类似,但由于参数不同,图形会有差异
pen.rr(160, 80, 0);
// 开始一个循环,循环变量 i 从 0 开始,到 18 结束(包含 18)
for(int i = 0; i <= 18; i++) {
// 在每次循环中,调用 pen 对象的 rr 方法,传入参数 159、79 和 3
// 持续绘制特定图形,由于参数相同,每次绘制的图形相同
pen.rr(159, 79, 3);
// 调用 pen 对象的 text 方法,并传入当前的循环变量 i
// 推测 text 方法可能是在绘制的图形上显示文本,这里显示当前循环的序号
pen.text(i);
// 调用 wait 函数,传入参数 1
// 推测 wait 函数是用于暂停程序执行一段时间,这里暂停 1 个时间单位(具体时间单位根据函数实现而定)
wait(1);
}
// 程序正常结束,返回值 0 表示程序执行成功
return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-05-02,如有侵权请联系 cloudcommunity@tencent 删除科技c++教育程序对象
发布评论