无法在数组类型 PSShape[] 上调用 disableStyle()
Posted
技术标签:
【中文标题】无法在数组类型 PSShape[] 上调用 disableStyle()【英文标题】:Cannot invoke disableStyle() on the array type PShape[] 【发布时间】:2022-01-19 23:44:39 【问题描述】:我的处理代码有问题。 我做了一个网格女巫,在随机位置填充了一些 SVG。使用 PNG 和 PImage 效果很好,但我想使用 SVG 来更改图标的描边颜色、重量和大小。
在我将代码写入 Shape 以使其与 SVG 一起工作后,我想放置一个 disableStyle() 来更改值,但我收到错误“无法在数组类型 PShape[] 上调用 disableStyle()”。
任何人建议问题是什么?
希望得到一些好的答案。谢谢!
int countHorizontal = 12;
int countVertical = 6;
int seed = 0;
PShape[] Icon = new PShape[8];
void setup()
size(1600, 800);
noLoop();
randomSeed(seed);
Icon[0] = loadShape("SVGIcons/Icon_1.svg"); Icon[1] = loadShape("SVGIcons/Icon_2.svg");
Icon[2] = loadShape("SVGIcons/Icon_3.svg"); Icon[3] = loadShape("SVGIcons/Icon_4.svg");
Icon[4] = loadShape("SVGIcons/Icon_5.svg"); Icon[5] = loadShape("SVGIcons/Icon_6.svg");
Icon[6] = loadShape("SVGIcons/Icon_7.svg"); Icon[7] = loadShape("SVGIcons/Icon_8.svg");
void draw()
background(#eeeeee);
Icon.disableStyle();
strokeWeight(2);
color(#000000);
for (int i = 0; i < countHorizontal; i = i + 1)
for (int j = 0; j < countVertical; j = j + 1)
float w = float(width) / countHorizontal;
float h = float(height) / countVertical;
float x = w * i;
float y = h * j;
shape(Icon[(int)random(Icon.length)], x, y, 100, 100);
void keyReleased()
if (keyCode == LEFT)
seed = seed - 1;
if (keyCode == RIGHT)
seed = seed + 1;
randomSeed(seed);
redraw();
println(seed);
//saveFrame("export/animation_####.png");
【问题讨论】:
【参考方案1】:您的Icon
变量是PShape[]
类型。方括号表示它是一个array 的 PShape 对象。 Array
没有名为 disableStyle()
的方法,这就是为什么您会收到无法在 Icon
变量上调用该方法的错误。
要使用该方法,您需要访问数组中的各个 PShape 元素:
Icon[0].disableStyle(); // etc
【讨论】:
谢谢,它工作得很好。喜欢 *** 的工作原理! 我可以只为一个图标指定特定的宽度和高度吗?除了宽度是两倍之外,它们的尺寸都相同。以上是关于无法在数组类型 PSShape[] 上调用 disableStyle()的主要内容,如果未能解决你的问题,请参考以下文章
类型数组的打字稿错误:- 无法调用其类型缺少调用签名的表达式