← 编程学习中心
📖

Preparation

8 个课程
1
如何学习编程
2
计算机基础
3
键盘初识与基准键位
4
字母与数字基础
5
Shift键魔法
6
编程符号专精
7
功能键与修饰键
8
键盘学习总结与进阶
📚

Basics

22 个课程
1
什么是编程?
2
Hello World - 你的第一个程序
3
变量基础概念 - 给信息贴标签
4
变量赋值和操作 - 变量的高级用法
5
数据类型基础 - 数字和字符串
6
基础运算符 - 数字运算王国
7
布尔类型与比较运算符 - 程序的判断基础
8
条件判断基础 - 让程序学会做决定
9
变量作用域 - 变量的生存范围
10
条件语句进阶 - 复杂判断与嵌套结构
11
逻辑运算符 - 简化复杂条件判断
12
循环语句 - 程序的重复机器
13
循环进阶 - break、continue与循环控制
14
嵌套循环与作用域
15
循环调试实战技巧
16
循环不变量 - 理解循环的数学规律
17
数组基础 - 数据的收纳盒
18
数组操作方法 - 添加、删除和管理
19
数组高级 - 探索数组的强大功能
20
引用概念 - 变量的不同行为
21
函数基础 - 解决重复代码的秘密武器
22
函数实践与应用 - 巩固基础,实战应用
🚀

Intermediate

11 个课程
1
从控制台到画布 - p5.js初体验
2
图形绘制工具箱 - 基础图形函数
3
让世界多彩 - 颜色系统详解
4
文字的艺术 - 文本绘制与样式
5
球体动起来 - 动画基础入门
6
球体的交互魔法 - 鼠标与条件判断
7
面向对象编程 - Class类与实例
8
球的家族 - 循环与数组应用
9
球的个性 - 函数封装与参数化
10
球的变身 - 形状模式与高级绘制
11
球的世界 - 综合创作项目
🎯

Advanced

6 个课程
1
对象类型
2
对象类型应用
3
自定义类型
4
函数进阶 - 箭头函数与高级编程技巧
5
内置方法 - 字符串与数组的魔法工具
6
Switch语句与字符串模板 - 更优雅的代码表达
← 编程学习中心
📖

Preparation

8 个课程
1
如何学习编程
2
计算机基础
3
键盘初识与基准键位
4
字母与数字基础
5
Shift键魔法
6
编程符号专精
7
功能键与修饰键
8
键盘学习总结与进阶
📚

Basics

22 个课程
1
什么是编程?
2
Hello World - 你的第一个程序
3
变量基础概念 - 给信息贴标签
4
变量赋值和操作 - 变量的高级用法
5
数据类型基础 - 数字和字符串
6
基础运算符 - 数字运算王国
7
布尔类型与比较运算符 - 程序的判断基础
8
条件判断基础 - 让程序学会做决定
9
变量作用域 - 变量的生存范围
10
条件语句进阶 - 复杂判断与嵌套结构
11
逻辑运算符 - 简化复杂条件判断
12
循环语句 - 程序的重复机器
13
循环进阶 - break、continue与循环控制
14
嵌套循环与作用域
15
循环调试实战技巧
16
循环不变量 - 理解循环的数学规律
17
数组基础 - 数据的收纳盒
18
数组操作方法 - 添加、删除和管理
19
数组高级 - 探索数组的强大功能
20
引用概念 - 变量的不同行为
21
函数基础 - 解决重复代码的秘密武器
22
函数实践与应用 - 巩固基础,实战应用
🚀

Intermediate

11 个课程
1
从控制台到画布 - p5.js初体验
2
图形绘制工具箱 - 基础图形函数
3
让世界多彩 - 颜色系统详解
4
文字的艺术 - 文本绘制与样式
5
球体动起来 - 动画基础入门
6
球体的交互魔法 - 鼠标与条件判断
7
面向对象编程 - Class类与实例
8
球的家族 - 循环与数组应用
9
球的个性 - 函数封装与参数化
10
球的变身 - 形状模式与高级绘制
11
球的世界 - 综合创作项目
🎯

Advanced

6 个课程
1
对象类型
2
对象类型应用
3
自定义类型
4
函数进阶 - 箭头函数与高级编程技巧
5
内置方法 - 字符串与数组的魔法工具
6
Switch语句与字符串模板 - 更优雅的代码表达

球的变身 - 形状模式与高级绘制

概念介绍

到目前为止,我们绘制球时都使用默认的坐标系统:circle(x, y, diameter)中的(x,y)是球的中心。但如果想要用球的左上角坐标来定位呢?或者用半径而不是直径来绘制呢?p5.js提供了绘制模式功能,让我们可以改变坐标系统,满足不同的绘制需求!

学习目标

  • 掌握绘制模式:ellipseMode(), rectMode()
  • 理解坐标系统:CENTER, CORNER, RADIUS等模式
  • 学习形状变换:用不同模式创建不同效果
  • 掌握绘制技巧:组合不同模式创建复杂形状
  • 理解常量概念:在p5.js中的应用

📐 绘制模式基础

什么是绘制模式?

绘制模式决定了我们如何解释图形的坐标参数。就像选择不同的测量工具一样:

  • CENTER模式:坐标表示图形的中心点
  • CORNER模式:坐标表示图形的左上角
  • RADIUS模式:用半径而不是直径
  • CORNERS模式:用两个对角点定义矩形

默认模式 vs 自定义模式

加载代码编辑器...

🔄 与基础课程的连接

还记得基础课程中的常量概念吗?

  • 基础课程:const PI = 3.14159; - 自定义常量
  • p5.js应用:CENTER, CORNER, RADIUS - 系统常量

这些常量让我们不需要记住具体的数字,而是使用有意义的名称!


📊 ellipseMode() 详解

CENTER模式(默认)

加载代码编辑器...

CORNER模式

加载代码编辑器...

RADIUS模式

加载代码编辑器...

💻 实践练习

练习1:模式实验 🧪

比较不同ellipseMode的效果:

加载代码编辑器...

练习2:中心对齐 🎯

用CENTER模式创建居中的图形:

加载代码编辑器...

练习3:从边缘绘制 📐

用CORNER模式从画布边缘开始绘制:

加载代码编辑器...

练习4:模式切换 🔄

在不同模式间切换创作:

加载代码编辑器...

练习5:精确布局 📏

用模式精确控制图形位置:

加载代码编辑器...

练习6:混合模式创作 🎨

组合不同模式创建复杂效果:

加载代码编辑器...

练习7:rectMode()应用 📦

矩形模式的应用:

加载代码编辑器...

练习8:高级布局系统 🏗️

创建灵活的布局系统:

加载代码编辑器...

🎯 本课重点总结

绘制模式类型

  • ✅ CENTER模式:坐标表示图形中心(默认)
  • ✅ CORNER模式:坐标表示图形左上角
  • ✅ RADIUS模式:使用半径而不是直径
  • ✅ CORNERS模式:用两个对角点定义图形

应用场景

  • ✅ CENTER模式:居中对齐、同心图形、围绕中心点旋转
  • ✅ CORNER模式:网格布局、从边缘开始精确定位
  • ✅ RADIUS模式:数学计算、物理模拟、半径相关应用
  • ✅ CORNERS模式:拖拽选择框、根据两点定义区域

优势与特点

  • ✅ 灵活性:不同场景选择最适合的坐标系统
  • ✅ 精确性:精确控制图形位置和大小
  • ✅ 便利性:简化常见的绘制任务
  • ✅ 一致性:ellipse和rect都支持相同的模式概念

与基础课程的连接

  • ✅ 常量应用:CENTER, CORNER等系统常量的使用
  • ✅ 坐标系统:深入理解画布坐标系统
  • ✅ 函数参数:模式如何影响函数参数的解释

🚀 下一步

恭喜你!你已经掌握了p5.js的高级绘制技巧!你学会了:

  • 📐 绘制模式:ellipseMode(), rectMode()的应用
  • 🎯 坐标系统:CENTER, CORNER, RADIUS模式的含义
  • 🔄 模式切换:在不同模式间灵活切换
  • 📏 精确布局:用模式实现精确的图形定位

下一课我们将进行综合创作项目:

  • 🌟 项目整合:将所有学过的概念整合到一个作品中
  • 🎨 创意表达:用学到的技能创作个人作品
  • 🏆 作品展示:完成一个完整的球世界项目
  • 🔧 调试优化:性能优化和错误处理

准备好展示你的学习成果,创作令人惊叹的球世界作品了吗?

p5.js官方参考

  • Reference: ellipseMode()
  • Reference: rectMode()
  • Reference: Constants
  • Reference: CENTER
  • Reference: CORNER
  • Reference: RADIUS
Previous lesson
Previous
球的个性 - 函数封装与参数化
Next
球的世界 - 综合创作项目
Next lesson