p5.js 正方形square的基础用法

点赞 + 关注 + 收藏 = 学会了

在 p5.js 中,square() 是一个用于绘制正方形的便捷函数。与使用 rect() 绘制正方形相比,square() 更加简洁,因为它只需要指定边长而不需要分别指定宽和高。

语法说明

基本语法:

js 复制代码
square(x, y, s, [tl], [tr], [br], [bl])
  • x:正方形左上角的 x 坐标(必选)
  • y:正方形左上角的 y 坐标(必选)
  • s:正方形的边长(必选)
  • tl:左上角的圆角半径(可选)
  • tr:右上角的圆角半径(可选)
  • br:右下角的圆角半径(可选)
  • bl:左下角的圆角半径(可选)

基础示例

下面是一个简单的示例,展示了如何使用 square() 函数绘制不同样式的正方形:

js 复制代码
function setup() {
  createCanvas(600, 400);
  background(240);
  textSize(16);
  fill(0);
  
  // 1. 基本正方形
  fill(255, 150, 150); // 浅红色填充
  square(50, 60, 100); // x=50, y=50, 边长=100
  fill(0);
  text("基本正方形", 50, 40);
  
  // 2. 带边框的正方形
  noFill(); // 无填充
  stroke(0, 150, 255); // 蓝色边框
  strokeWeight(3); // 边框粗细
  square(200, 60, 100);
  fill(0);
  text("带边框的正方形", 200, 40);
  
  // 3. 圆角正方形(四个角都有圆角)
  fill(150, 255, 150); // 浅绿色填充
  square(350, 60, 100, 20); // 四个角都有20px的圆角
  fill(0);
  text("圆角正方形", 350, 40);
  
  // 4. 不同角不同圆角的正方形
  fill(200, 150, 255); // 淡紫色填充
  square(50, 220, 100, 30, 0, 15, 0); // 左上角30,右下角15
  fill(0);
  text("不同角不同圆角", 50, 200);
  
  // 5. 旋转的正方形(需要配合rotate()函数)
  push(); // 保存当前状态
  translate(250, 250); // 移动坐标原点
  rotate(PI/8); // 旋转45度
  fill(255, 255, 150); // 浅黄色填充
  square(-30, -20, 100); // 以新原点为中心绘制
  pop(); // 恢复之前的状态
  fill(0);
  text("旋转的正方形", 200, 200);
  
  // 6. 半透明正方形
  fill(150, 200, 255, 100); // 浅蓝色填充,透明度100(0-255)
  square(350, 220, 100);
  fill(0);
  text("半透明正方形", 350, 200);
}

上面的示例展示了 square() 函数的几种常见用法:

  1. 基本正方形:只使用了必选参数 x、y 和边长
  2. 带边框的正方形 :使用 noFill() 去掉填充,stroke() 设置边框颜色,strokeWeight() 设置边框粗细
  3. 圆角正方形:通过第四个参数设置了四个角的圆角半径
  4. 不同角不同圆角:分别设置了四个角的不同圆角半径
  5. 旋转的正方形 :配合 push()pop()translate()rotate() 函数实现旋转效果
  6. 半透明正方形 :在 fill() 函数中添加了第四个参数设置透明度(0-255)

以上就是本文的全部内容啦,想了解更多 P5.js 用法欢迎关注 《P5.js中文教程》

也可以➕我 green bubble 吹吹水咯

点赞 + 关注 + 收藏 = 学会了

相关推荐
梦帮科技6 小时前
GRAVIS v4.0:基于Web的极速套利架构设计与实时数据流实现
前端·人工智能·rust·自动化·区块链·智能合约·数字货币
爱勇宝6 小时前
办公资料反复修改、补传、交接混乱,我做了个桌面工具来解决这件事
前端·后端·程序员
微信开发api-视频号协议7 小时前
企业微信外部群开发自动化实践过程
java·前端·微信·自动化·企业微信·ipad
甲维斯7 小时前
Fable5:20美金的顶级设计师!
前端·人工智能
kyriewen7 小时前
我同时用了 Claude Code、Cursor 和 Codex,说说三个工具的真实差距——2026 年选错工具比不用 AI 更浪费时间
前端·ai编程·claude
Jackson__7 小时前
为了拯救我的腰椎和颈椎,我做了款浏览器插件!
前端·javascript·开源
闲猫8 小时前
Python FastAPI + SQLAlchemy 入门教程:从零搭建你的第一个 Web 应用
前端·python·fastapi
林小帅8 小时前
NestJS v11 + Prisma v7 ESM 迁移配置解析
前端·javascript·后端
IT_陈寒8 小时前
React的setState竟然不是立刻生效的,害我调试半天
前端·人工智能·后端
简简单单就是我_hehe8 小时前
前端埋点日志解决方案:完整 User-Agent 解析工具实现,爬虫识别、设备品牌、操作系统、浏览器版本全解析(附完整源码)
前端·爬虫