我正在尝试使用Processing显示svg图像,但它只会显示空白。我认为代码没有问题,因为当我将shape
更改为ellipse
时,它可以完美地工作。我是否需要修改下面的任何代码以显示svg文件,或者是否有其他可能的原因使其无法显示?预先感谢!
Table table;
PFont f;
PShape leaf;
color [] c = {color(225, 50, 50), color(225, 100, 0), color(225, 225, 0), color(0, 150, 0), color(0), color(125)};
int i=0;
void setup() {
size(1100, 500);
background(255);
table=loadTable("P3_data.csv", "header");
leaf= loadShape("leaf.svg");
leaf.disableStyle();
}
void draw() {
stroke(255);
strokeWeight(0.1);
for (TableRow row : table.rows()) {
int friend= (row.getInt("Friend"));
int travel= (row.getInt("Travel"));
int selfimprovement= (row.getInt("Self-improvement"));
int club= (row.getInt("Club"));
int schoolwork= (row.getInt("Schoolwork"));
int money= (row.getInt("Money"));
int total= 0;
int [] Daily= {friend, travel, selfimprovement, club, schoolwork, money};
for (int k=0; k<6; k++) {
total +=Daily[k];
}
println (total);
for (int j=0; j<6; j++) {
for (int m=0; m< Daily[j]; m++) {
fill(c[j]);
ellipse((i%120)*10+10, (i/120)*40+10, 3*total, 4*total);
//shape(leaf, (i%120)*10+10, (i/120)*40+10, 3*total, 3*total);
total --;
}
}
if (i>1095) {
break;
}
i++;
}
save("sketch.png");
}
答案 0 :(得分:1)
形状加载有样式信息,该样式信息告诉他们如何绘制(颜色,笔划粗细等)。
disableStyle()
的{{1}}方法将关闭此信息。PShape
方法将其重新打开。
如果要显示 SVG 及其样式,则必须删除enableStyle()
调用:
disableStyle
leaf = loadShape("leaf.svg");
如果要更改从* svg“文件生成的形状的笔触和填充颜色,则实际上必须禁用样式:
leaf.disableStyle();
在这种情况下,将使用当前的填充颜色和描边颜色绘制形状。这意味着所有形状都用相同的填充色填充并用相同的笔触颜色绘制:
leaf= loadShape("leaf.svg");
leaf.disableStyle();