百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

p5.js 使用npm安装p5.js后如何使用?

liuian 2025-01-05 18:42 172 浏览

本文简介

带尬猴,我是德育处主任


p5.js 中文入门教程 中都是使用 CDN 的方式去使用 p5.js 的,不太符合当下的开发习惯。

不管是使用 Vue 还是 React,我们日常项目大部分应该都是使用脚手架的方式进行开发了,按照 p5.js 中文入门教程 的方式在 module 模式下使用 p5.js ,如果不出意外的话肯定会有意外!

所以,本文会把 p5.js 中文入门教程 缺省的 module 开发模式补充完整。


环境搭建

为了方便,我将使用 vite 搭建一个原生项目。

创建项目

# 1、创建项目
npm create vite@latest

# 2、项目命名
? Project name: ? p5-demo

# 3、选择框架。这里选择 Vanilla 创建一个原生项目
? Select a framework: ? - Use arrow-keys. Return to submit.
>   Vanilla
    Vue
    React
    Preact
    Lit
    Svelte
    Others

# 4、选择开发语言。我选了JS,你看自己需求进行选择吧
? Select a variant: ? - Use arrow-keys. Return to submit.
>   JavaScript
    TypeScript

# 5、初始化并运行项目
  cd p5-demo
  npm install
  npm run dev

项目就这样创建出来了。


安装 p5.js

进入 p5-demo 项目后,使用以下命令安装 p5.js

npm install p5 --save

安装完成后再使用 npm run dev 运行项目。


创建画布

在创建画布前,需要先引入 p5.js。引入后可以尝试输出 p5.js 的版本。

打开 main.js 输入以下内容

import p5 from 'p5' // 引入 p5

console.log(p5.VERSION) // 输出当前使用 p5.js 的版本

打开浏览器的控制台可以看到当前使用的 p5.js 版本,在写本文时所用的是 v1.5.0


此时如果你打算像 《p5.js 光速入门》 那样直接使用 setup() 创建画布是不可能的了,因为在 module 模式下引入的 p5.js 的 setup() 方法并不会直接绑定到 window 上。

你可能会猜 p5.setup() 总可以了吧?

在控制台输出看看 console.log(p5.setup),会发现输出的是 undefined 。


好了,不饶了。

在 module 模式使用 p5.js ,需要这样写:

import p5 from 'p5'

let count = 0

const s = (sketch) => {
  sketch.setup = function() {
    sketch.createCanvas(400, 400) // 创建画布,传入画布尺寸
    sketch.background(120) // 设置画布背景色
  }

  sketch.draw = function() {
    let x = Math.sin(count) * 100 + 200
    let y = Math.cos(count) * 100 + 200
    sketch.circle(x, y, 50) // 创建圆形
    count += 0.1
  }
}

new p5(s)

这个例子中,我画了个圆形让它自己转圈圈。


在 module 模式下开发,可以使用 import p5 from 'p5' 的方式引入 p5.js。

使用 new p5(sketch) 的方式创建 p5 程序。

sketch 是传入到 new p5() 的参数,这个参数是一个函数。正如上面的例子中,在这个函数中就可以使用 setup()、draw() 等方法了。


将画布绑定到指定元素里

在使用 new p5() 创建出来的画布都是放在页面的尾部。

在 index.html 文件输入以下内容

<div id="app">
  <div>123</div>
  <div>456</div>
</div>
<script type="module" src="/main.js"></script>

在 main.js 文件输入以下内容

import p5 from 'p5'

const s = (sketch) => {
  sketch.setup = function() {
    sketch.createCanvas(400, 400)
    sketch.background(120)
  }
}

new p5(s)

打开浏览器可以看到,画布是绑定在页面的尾部的。


如果想将画布绑定在指定元素里,可以在 new p5() 方法里传入第二个参数,这个参数可以是元素的ID,也可以是元素本身。

比如:

在 index.html 文件输入以下内容

<div id="app">
  <div>123</div>
  <div id="palette"></div>
  <div>456</div>
</div>
<script type="module" src="/main.js"></script>

在 main.js 文件输入以下内容

import p5 from 'p5'

const s = (sketch) => {
  sketch.setup = function() {
    sketch.createCanvas(400, 400)
    sketch.background(120)
  }
}

new p5(s, 'palette')

此时再打开浏览器看看页面

此时画布就插入到指定元素里了。


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

相关推荐

谷歌在线浏览器(谷歌在线代理浏览器)
谷歌在线浏览器(谷歌在线代理浏览器)

1.打开谷歌浏览器设置,点击右上方按钮2.点击设置3.点击同步功能和Google服务4.点击登录Chrome即可手机和电脑都可以下载谷歌浏览器。登录时需要创建一个账号和邮箱,需要记住自己的账号和密码,同时手机和电脑可以同步。...

2026-01-08 09:05 liuian

vs2019微软官网下载(microsoft visual studio官方下载)

原因是可能您的电脑环境不符合VS2022安装要求,或者您的安装程序出现了问题。所以导致了安装失败。同时,您可以尝试重新下载安装程序,或者检查电脑所有驱动程序是否更新到最新版本,或者关闭杀毒软件等其他可...

家用无线路由器哪个好(家用无线路由器哪个好用又实惠)

各有优劣,不能单纯的说是无线的好还是优先的好:1、有线路由器网络稳定,不会跳PING。但不能发射WiFi信号给手机上网,需要走线,受到布线约束。2、无线路由器和有线路由器最大的区别体现在和电脑的连接方...

u盘世界十大排名(u盘全球排名)

1、首先主板支持u启动其次u盘空间足够再者将u盘进行引导式格式化,如usb-hdd模式(一般1g的u盘不能格zip模式)系统安装程序复制进u盘开机从u盘启动就行了。2、首先在U盘中安装java...

应用程序无法正常启动0xc0000006

Windows10中的0xc0000006映像错误  这是在Windows10中修复错误映像错误0xc0000006的方法–  【1】卸载Windows更新  几乎每个“错误映像错误”的典型原因是...

qq空间说说怎么设置权限(qq空间说说在哪里设置权限)
qq空间说说怎么设置权限(qq空间说说在哪里设置权限)

1、首先在电脑上将qq软件打开,输入账号和密码登录到qq页面上。2、接着在qq的主界面点击最上方的Z进入到个人qq空间页面。3、进入到qq到空间之后,在右上角找到齿轮的图标点击它,并选择权限设置。4、接着在左侧的空间设置里面选择评论留言防骚...

2026-01-08 06:55 liuian

docx是什么格式的文件(docx是什么格式的文件怎么转word)

docx是Office2007之后版本使用的文本格式。设置方法如下:1、首先在电脑上面找到一份word文档,将它打开。2、打开之后,在文档上面找到文件选项,点击文件进入。3、进入之后,在屏幕的下拉菜单...

苹果笔记本pro和air哪个好(苹果笔记本air与pro哪个好)
苹果笔记本pro和air哪个好(苹果笔记本air与pro哪个好)

买苹果笔记本,买pro好,他在处理器上有一定升级。使用的是最新的处理器,所以性能表现方面会有一些优势。但是相比。它的系统比较卡顿,使用起来不是很流畅,影响日常使用,所以最好还是买后者好一些。它的性能更加稳定,各种方面都比较不错,在日常使用...

2026-01-08 05:55 liuian

笔记本一直重启开不了机怎么办

那就是笔记本坏掉了呀,坏掉了就去售后维修看一下呀原因及解决方法如下1.我们需要确认一下笔记本电脑是否有电。如果笔记本电脑的电量不足,就会出现无法开机的情况。此时,我们需要将电脑连接到电源插座上,充电一...

电脑不能开机是怎么回事

电脑不能开机可能有多种原因,以下是一些常见的问题和解决方法:1.电源问题:检查电源插头是否插紧,是否有电源输出。可以尝试更换电源线或电源插头。2.内部硬件故障:电脑内部硬件出现问题可能导致电脑无法...

自家wifi取个名(自家wifi取个名推荐)
  • 自家wifi取个名(自家wifi取个名推荐)
  • 自家wifi取个名(自家wifi取个名推荐)
  • 自家wifi取个名(自家wifi取个名推荐)
  • 自家wifi取个名(自家wifi取个名推荐)
itunesstore下载安装(itunes下载安装教程)

回答如下:是的,下载和安装应用程序需要使用iTunes帐户登录。这是为了确保您有权使用该应用程序,并且可以在需要时重新安装该应用程序。您可以使用现有的iTunes帐户或创建一个新的帐户来登录。App...

windows软件中心(win10应用中心)

windows安全中心是windows系统的一个安全综合控制面板,包含有防火墙状态提示,杀毒软件状态提示,自动更新提示等系统基本安全信息。Windows安全中心的前身是MicrosoftSecu...

苹果动态壁纸怎么设置自己的视频

苹果图库里的视频做成动态壁纸方法如下:1/7点击Livephoto进入处理视频工具页面后,找到并点击里面的Livephoto选项。2/7选择视频在跳转的选择页面中,选择并点击一个要进行处理的视频。3/...

查看qq密码的软件(查询qq密码软件)
查看qq密码的软件(查询qq密码软件)

可以按照如下方式进行查看:1、打开QQ安全中心应用,使用当前已有的QQ账号登录,登陆成功之后,点击页面右下角“工具箱”图标;2、接下来,在打开的页面中,点击“修改密码”菜单;3、最后,在打开的修改密码页面中,在网页中直接输入新的密码,点击“...

2026-01-08 02:05 liuian