首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在p5.js中填充由线条组成的形状?

在p5.js中,可以使用两种方法来填充由线条组成的形状。

方法一:使用beginShape()endShape()函数来定义形状的边界点,并使用vertex()函数来定义每个边界点的位置。然后使用fill()函数设置填充颜色,并在beginShape()endShape()之间使用beginContour()endContour()函数来创建内部空洞。

示例代码如下:

代码语言:txt
复制
function setup() {
  createCanvas(400, 400);
}

function draw() {
  background(220);
  
  fill(255, 0, 0); // 设置填充颜色为红色
  
  beginShape();
  vertex(100, 100);
  vertex(200, 100);
  vertex(200, 200);
  vertex(100, 200);
  endShape(CLOSE);
  
  fill(0, 0, 255); // 设置填充颜色为蓝色
  
  beginShape();
  vertex(150, 150);
  vertex(250, 150);
  vertex(250, 250);
  vertex(150, 250);
  endShape(CLOSE);
  
  fill(0, 255, 0); // 设置填充颜色为绿色
  
  beginShape();
  vertex(120, 120);
  vertex(180, 120);
  vertex(180, 180);
  vertex(120, 180);
  endShape(CLOSE);
}

方法二:使用line()函数绘制形状的边界线,然后使用loadPixels()函数获取画布的像素数据,遍历像素数据,找到形状内的像素点,然后使用set()函数设置像素点的颜色。

示例代码如下:

代码语言:txt
复制
function setup() {
  createCanvas(400, 400);
}

function draw() {
  background(220);
  
  // 绘制形状的边界线
  line(100, 100, 200, 100);
  line(200, 100, 200, 200);
  line(200, 200, 100, 200);
  line(100, 200, 100, 100);
  
  // 获取画布的像素数据
  loadPixels();
  
  // 遍历像素数据
  for (let x = 0; x < width; x++) {
    for (let y = 0; y < height; y++) {
      // 判断像素点是否在形状内
      if (isInsideShape(x, y)) {
        // 设置像素点的颜色为红色
        set(x, y, color(255, 0, 0));
      }
    }
  }
  
  // 更新画布显示
  updatePixels();
}

// 判断像素点是否在形状内
function isInsideShape(x, y) {
  if (x >= 100 && x <= 200 && y >= 100 && y <= 200) {
    return true;
  } else {
    return false;
  }
}

以上是两种在p5.js中填充由线条组成的形状的方法,你可以根据实际需求选择适合的方法。如果想了解更多关于p5.js的信息,请访问腾讯云的p5.js产品介绍页面:腾讯云p5.js产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

p5.js 状态管理

p5.js ,push() 提供了“存档”功能,pop() 提供了“读取存档”功能。 那么“存档”到底能存什么内容呢?常见存储内容是样式和变形。...比方说,你一开始设置了正方形填充色是绿色,边框粗细是10,然后创建了一个正方形。之后你还想创建其他正方形,而且希望使用 p5.js 默认样式,而不是使用绿色正方形。...那么你可以在设置样式之前使用 push() 打一个标记,之后就可以在你希望地方使用 pop() 读取之前标记所记录样式和变形状态。...} 上面的例子,在设置样式之前使用了 push() 进行“存档”,在创建第二个正方形之前使用了 pop() “读取存档”,所以右侧正方形使用了默认样式。...} 如果没有使用 push() 和 pop() ,那么这个例子两个正方形都会被旋转。

1.4K20

一网打尽位图与矢量图

概念 栅格图形,是像素单个点组成,每个像素用其 RGB 颜色值表示。栅格图形通常以某种压缩格式存储;显示栅格图形仅需要一个阅读器将其解压并传输到屏幕上。...适合于压缩网页图形等颜色数较少图形,不适合压缩照片等色彩丰富图形。 矢量图形,图像被描述为一系列几何形状,矢量文件图形元素成为对象。...栅格图形工作是描述哪个方格应该填充什么颜色,而矢量图形工作是描述要绘制从某个点到另一个点直线或曲线(绘图指令)。...质量 栅格图形,像素组成,与分辨率有关,因此放大会失真; 矢量图形,能重现清晰轮廓,线条非常光滑、且具有良好缩放性;存线条和图块信息,与分辨率和图像大小无关,不会失真,只与图像复杂程度有关...:计算机辅助绘图(CAD)程序;高分辨率打印图像程序; 汇总 类型 组成 优点 缺点 常见格式 栅格图形 像素 善于重现颜色细微层次,逼真地表现自然界景象 缩放和旋转容易失真,同时文件占用存储空间较大

80240

一网打尽位图与矢量图

概念 栅格图形,是像素单个点组成,每个像素用其 RGB 颜色值表示。栅格图形通常以某种压缩格式存储;显示栅格图形仅需要一个阅读器将其解压并传输到屏幕上。...适合于压缩网页图形等颜色数较少图形,不适合压缩照片等色彩丰富图形。 矢量图形,图像被描述为一系列几何形状,矢量文件图形元素成为对象。...栅格图形工作是描述哪个方格应该填充什么颜色,而矢量图形工作是描述要绘制从某个点到另一个点直线或曲线(绘图指令)。...质量 栅格图形,像素组成,与分辨率有关,因此放大会失真; 矢量图形,能重现清晰轮廓,线条非常光滑、且具有良好缩放性;存线条和图块信息,与分辨率和图像大小无关,不会失真,只与图像复杂程度有关...:计算机辅助绘图(CAD)程序;高分辨率打印图像程序; 汇总 类型 组成 优点 缺点 常见格式 栅格图形 像素 善于重现颜色细微层次,逼真地表现自然界景象 缩放和旋转容易失真,同时文件占用存储空间较大

87110

【愚公系列】2024年01月 GDI+绘图专题 GraphicsPath

欢迎 点赞✍评论⭐收藏前言GraphicsPath类是在WinForm中用于绘制自定义形状类,它表示一系列路径段和连接线段组成形状。...GraphicsPath类提供了一系列方法,AddLine、AddRectangle、AddEllipse等,用于向路径添加线段、矩形、椭圆等几何形状。...GraphicsPath类还可以进行路径操作,平移、旋转、缩放、联合、剪切、差异等,以创建更复杂形状。...GraphicsPath类可以用于绘制线条、多边形、曲线和文本等复杂形状,使得在WinForm应用程序实现高级绘图功能变得更为容易。...例如,如果我们要绘制一个两个矩形组成图形,我们可以使用以下代码:GraphicsPath path = new GraphicsPath();path.AddRectangle(new Rectangle

26621

dotnet OpenXML 转换 PathFillModeValues 为颜色特效

在 OpenXml 预设形状,有一些形状设置了 PathFillModeValues 枚举,此枚举提供了亮暗蒙层特效。具体特效是让形状选择一个画刷,在画刷上加上特效。...立体几何 Cube 形状,在 Cube 不同面有不同颜色,颜色亮度不同 接下来通过 OpenXML SDK 实现读取 PPTX 文件,解析 Cube 预设形状,在界面绘制,让填充和 PowerPoint...如下图,下图没有绘制线条,因此看起来和 PowerPoint 显示有一点不同 通过 ECMA 376 文档可以了解到 Cube 4 个 Path 组成,公式代码如下 <pathLst xmlns...如果你想在自己项目使用本文方法,还请自行处理细节。在我其他博客里面包含了详细各个细节处理逻辑,为了让本文清晰,这里就不加上太多细节逻辑 获取元素尺寸代码,这里固定默认大小。...shapePath.IsStroke) { // 不是可填充,而且不是线条,啥都不做

83020

CorelDRAW2023用户名序列号专业矢量图形制作软件

贝塞尔曲线<贝塞尔曲线直线或曲线线条组成组成线条节点都有控制手柄,通过控制手柄改变线条形状。4. 节点CorelDRAW节点是指直线段或曲线段每个末端处方形点。...通过创建节点,在节点之间生成连接线,从而组成直线或曲线。拖动直线或曲线上一个或多个节点可以改变直线或曲线形状。5. 路径路径单个直线段或曲线段或许多接合起来线段组成,是构建对象基本组件。...路径可以是开放(例如,线条)或者闭合(例如,圆形),也可以单个直线段或曲线段或许多接合起来线段组成。将单条或多条路径组合,就形成了对象。6....绘图绘图是指在 CorelDRAW 创建文档过程,绘制标志、设计广告画面等。...矢量图矢量图是决定所绘制线条位置、长度和方向数学描述生成图像。矢量图形是作为线条集合,而不是作为个别点或像素图案创建。12.

1.7K40

excel常用操作大全

3.在EXCEL输入“1-1”和“1-2”等格式后,将成为日期格式,1月1日和1月2日。我该怎么办? 这是EXCEL自动识别日期格式造成。...要将格式化操作复制到数据另一部分,请使用“格式化画笔”按钮。选择具有所需源格式单元格,单击工具栏上“格式画笔”按钮,鼠标变成画笔形状,然后单击要格式化单元格以复制格式。...要取消,请选择中文文本框,弹出菜单,选择“设置文本框格式”“颜色和线条”,然后选择“线条”-“颜色”-“无线条颜色”。 20、如何快速输入数据序列?...如果您可以定义一些常规数据(办公室人员列表),您经常需要使用这些数据作为将来自动填充序列,这难道不是一劳永逸吗?...在SUM函数输入一长串单元格区场是很麻烦,特别是当该区域许多不连续单元格区场组成时。此时,按住Ctrl键选择不连续区域。

19.2K10

手把手教你用AI画冠状病毒

近期有关于冠状病毒信息很多,相关学术论文数目也在不断增加。为了让论文好看一点,今天我们来使用AI画一个冠状病毒,练习练习AI画图技巧。 ? ---- 软件 ?...打开AI软件,建立一个适合自己模板 ? 2. 下来我们先画一个冠状病毒棘突糖蛋白,一个圆形(添加深蓝色渐变)和长方形(浅蓝色)组成 ? 3....然后画一个血凝素糖蛋白,一个椭圆形(添加深黄色渐变)和长方形(深黄色)组成 ? 4. 下来我们画一个膜糖蛋白(用钢笔工具勾勒一下线条,用平滑工具平滑一下线条就好了) ? 5....下来我们在内部画上核衣壳蛋白和RNA,我们使用画笔功能,先画一个圆,填充好渐变颜色,栅格化 ? ? 9. 拖拽进画笔,创建画笔 ? 10. 设置画笔 ? 11. 勾勒一下线条,作为核衣壳蛋白 ?...使用形状生成工具将外面的环生成,然后填充为紫色 ? 15. 分别将左右两个元素编组后,进行上下左右居中对齐 ? 16. 添加标签微微调整一下 ?

2.6K10

全版本Ai矢量图形编辑软件(illustrator软件cs5下载安装)

本文将从以下几个方面介绍如何在Adobe Illustrator实现创意设计: 一、使用基本形状和路径工具 在Adobe Illustrator,可以使用矩形、圆、多边形等基本形状工具来快速绘制各种形状...同时,还可以使用渐变工具来实现平滑过渡或不规则形状填充效果,从而丰富设计效果。...三、使用图形样式和图层效果 图形样式和图层效果是Adobe Illustrator强大功能之一,通过它们可以快速应用各种样式和效果,投影、描边、阴影等。...通过图案工具可以选择预设样式或自定义图案,并对其进行调整,而笔刷工具可以实现绘制不同粗细、不同形状线条和涂鸦效果。...六、使用3D效果和图形变形工具 Adobe Illustrator3D效果和图形变形工具可以帮助设计师实现更加复杂创意设计,三维文字、形状变形、图形扭曲等。

84510

【小程序码设计篇】菊花绽放

从设计图形上,我们把上述方案简单分成: • 平面类 qrcode ,snapchart code • 环状类 fb code,kik code, 考虑到专利风险,又要兼顾优雅美观,我们最终选择放射状作为我们...可以发现,定位点对角连线交点刚好是码圆心,3 个主定位点又刚好组成一个等腰直角三角形。以上特征,非常有利于定位识别。...2 .信息编码区 我们会把原始编码字符串,转换成 01 序列,再加入纠错码,得到最终 01 序列。我们只需要把 01 序列按一定编码路径,填充到信息编码区方格即可(0 为白,1 为黑)。...小程序在图案编码阶段,也是按点编码,并没有线概念。 3 .掩码图案 填充好编码区之后,我们发现图案与设计稿大相径庭,并没有发射状线条感觉。究其原因,是因为黑色点过于稀疏。...5 .轮廓填充区 为了凸显 logo 形状,我们在内圈留了一些区域作为轮廓填充区。

10.3K22

Flutter使用Canvas实现小白兔绘制

按照惯例,先看一下最终实现效果: 实现 仔细观察上面的效果图,可以发现简笔小白兔实际上是通过多个不同形状、不同位置 ”3“ 图形组成,所以核心就是如何绘制 ”3“ 形状,这里采用两个三次贝塞尔曲线来绘制...,共七个点,创建一个 Path 首先 moveTo 到第一个点,然后将其余 6 个点分两次每次 3 个点添加两个三次贝塞尔曲线到 Path ,最终组成了一个 ”3“ 图形。...身体 首先绘制小白兔主体,也就是左右两边身体轮廓,而左右两边身体轮廓则是一个反向 ”3“ 和一个正向 ”3“ 组成,所以首先我们使用上面封装好方法绘制一个反向 ”3“ 形状。...这里使用数值 110.w 为适配单位,关于 Flutter 屏幕适配请参考 :Flutter屏幕适配 实现效果如下: 这样就绘制出了兔子左边身体轮廓了,使用同样方法是不是就可以绘制出右边轮廓了呢...Offset.zero; return position; } } 然后创建用于构建 ”3“ 图形七个点,最终实现耳朵效果: 手脚 兔子手脚也是两个 “3” 图形组成,一边一只手一只脚为一个

94740

在 PDF 文档测量长度、周长和面积

在建筑、工程和施工(AEC)行业,对 PDF 测量工具需求变得至关重要。现在,让我们深入了解测量工具,学习如何在 PDF 上进行测量。...用于测量距离直线直线是在平面图、三维图和剖面图中测量长度基本工具。它满足了在这些图纸测量两点之间距离基本需求。用户只需单击初始点,将指针移至第二点,然后松开指针即可显示测量结果。...多边形适用于不规则形状,而矩形适用于规则矩形。在多边形模式下,只需单击起点,选择后续点直至形成封闭图形,然后双击即可立即显示中心点面积和周长。...更多参数和功能这些测量工具提供广泛自定义选项,允许用户设置各种参数,自定义线条、调整精度、校准长度、抓取、放大等。...自定义线条:个性化线条颜色、不透明度、线条和边框样式、粗细、填充颜色、字体颜色等,以满足您视觉偏好或特定要求。调整精度:调整测量精度,从整数到小数点后四位。

18810

【python-opencv】绘图(目标检测框及其置信度等)

一些常见参数,如下所示: img:您要绘制形状图像 color:形状颜色。对于BGR,将其作为元组传递,例如:(255,0,0)对于蓝色。对于灰度,只需传递标量值即可。 厚度:线或圆等粗细。...如果对闭合图形(圆)传递-1 ,它将填充形状。默认厚度= 1 lineType:线类型,是否为8连接线,抗锯齿线等。默认情况下,为8连接线。...cv.LINE_AA给出了抗锯齿线条,看起来非常适合曲线。 要绘制多边形,首先需要顶点坐标。将这些点组成形状为ROWSx1x2数组,其中ROWS是顶点数,并且其类型应为int32。...只需创建要绘制所有线条列表,然后将其传递给函数即可。所有线条将单独绘制。与为每条线调用cv.line相比,绘制一组线是一种更好,更快方法。...向图像添加文本: 要将文本放入图像,需要指定以下内容。 - 您要写入文字数据 - 您要放置它位置坐标(即数据开始左下角)。

1.7K10

Lottie动画原理

形状,大小等等,也包含位图;还可能是预合成层,即对已存在某些图层进行分组,把它们放置到新合成,作为新一个资源对象,这里layers对象结构是跟上面一级属性layers图层集合是一样图层结构...K值获取, 如上面的例子透明度o为100, 位置p为(126.5,963,0) k对应值有如下几种情况: 数字或3个数字组成数组:不带动画。...图层形状shapes shape是一个形状图层数组,对应AE图层内容形状设置,描述形状特征,通过描边信息、颜色填充等信息组合形成一个个矢量图。...LOTLayerGroup 和 LOTLayer 从上图我们可以看到两个集合类,LOTLayerGroup记录图层信息数组,对应JSON对象layers数组,一个个LOTLayer组成。...渲染节点:LOTRenderNode 类中有属性 CAShapeLayer * _Nonnull outputLayer,它负责计算线条颜色,线宽,填充色等 动画节点:LOTAnimatorNode 计算构成形状线条

5.5K71

利用PPT如何设计制作创意相框

17.png   1、制作微立体相框   在PPT2016开启一个空白幻灯片。设置背景色为浅灰色。按住Shift键,插入一个“形状”正六边形。...右击这个正六边形,选择“设置形状格式”,线条设置为“无线条”;填充设置为“渐变填充”,类型、方向等选默认,角度为45度,2个渐变光圈,光圈1颜色为“白色,背景1,深色15%”,光圈2颜色为“白色,背景1...复制它,将复制出图形旋转90度,这样所需光晕就制作完成了。反光制作,首先复制出一个水晶边框,设置复制出边框,填充为“纯色填充”,颜色为白色,无线条。...接下来,再绘制一个大小适合椭圆,使之与复制出那个水晶边框有一定重叠,将这两个都选中后,点击“格式”选项卡下“合并形状“剪除”。...插入需装入水晶相框图片(大眼怪小黄人),选中它,利用“格式”选项卡“删除背景”去掉图片中背景颜色(可利用去除背景8个控制点进行适当调整,如果还去不完全,可利用“标记要删除区域”按钮将不需要区域去掉

4.1K20

必读!UI图标终极设计指南

在这篇文章,我们总结了图标的属性以及UI设计推荐图标设计指南。 用法 在 UI 设计,图标主要用作应用程序图标和系统图标。...它用于应用程序图标来表达您品牌和系统图标,以便用户快速了解信息并根据信息采取行动。 风格 有线条填充、彩色和图像方式来表达图标。目的因使用图标的空间而异,主要用于对动作进行反馈或增加注意力。...线条填充:它以其基本形式放置在布局上。 色彩:通常用于对行动提供反馈或增加注意力。 图片:在需要高度关注时使用。我倾向于使用表情符号或独特图标。 重量 可以组合样式以创建不同权重。...视觉网格是指允许相同大小区域内各种形状图标具有相同权重和重心网格。几何解构对象是根据圆形、正方形、矩形和等边三角形组成网格产生。...填充线条可以根据使用它们上下文一起使用,但在相同上下文中使用图标用相同属性表示。 视图角度 尽可能使透视图从正面看。

81810

Processing之矢量SVG用法一览

bot.disableStyle(); // 禁用 SVG 样式 fill(0, 102, 153); // 填充 SVG 色彩 stroke(255); // 设置 SVG 线条颜色为白色...zoom = map(mouseX, 0, width, 0.1, 4.5); scale(zoom); shape(bot, -140, -140); } 3)操作子节点 SVG 文件可以许多单独形状组成...这些形状每一个(称为“子”)都有自己名称,可用于从“父”文件中提取它。此示例加载美国地图并通过从两个州提取数据来创建两个新 PShape 对象。...加载 SVG 时,getVertexCount() 通常会返回 0,因为所有顶点都在子形状。这时候我们可以遍历子形状,然后再遍历他们顶点。可以看下面代码详细注释。...这些命令将在形状数据呈现到屏幕之前抓取形状数据。在这个阶段,整个场景只不过是一长串线条和三角形,这时使用sphere()方法创建形状将由数百个三角形组成,而不是单个对象。

2.3K60
领券