如何解决带加工的绘图工具
我正在尝试创建一个带有处理功能的小绘图工具。最终的绘图应该可以导出为 .svg 文件——所以我认为这很容易……但实际上它不是…… 我将背景功能放入设置中——为了能够绘制——不幸的是,安全的 svg 文件只包含一个框架——而不是整个绘图。 :-( 我错过了什么——我怎么能做到这一点!我会很感激任何形式的帮助!
这是我目前的代码:
import processing.svg.*;
boolean record;
void setup () {
size(1080,1080);
background(255);
}
void draw() {
if (record) {
beginRecord(SVG,"frame-####.svg");
}
fill(255);
strokeWeight(1);
ellipse(mouseX,mouseY,100,100);
if (record) {
endRecord();
record = false;
}
}
void mousepressed() {
record = true;
}
尝试了不同的方法以不同的顺序组织代码行 - 但无法管理它......
谢谢!
解决方法
那是因为每次 beginRecord 和 endRecord 都会创建一个图像。如果你想保存你看到的图像,你可以使用 save(fileName.png)
代替。下面是一段代码片段来演示:
void setup() {
size(800,600);
background(255);
fill(255);
strokeWeight(1);
}
void draw() {
ellipse(mouseX,mouseY,100,100);
}
void mousePressed() {
save("myImage.png");
}
另一方面,如果您真的想使用 beginRecord
,请知道它会保存您在 beginRecord
和 endRecord
之间绘制的所有内容。例如,您可以通过这种方式以编程方式创建图像文件,但您不能仅将快照添加到现有图像中(这就是为什么您在当前代码中只能看到“一帧”)。每次开始录制时,都会创建一个新图像。我对这种方法不是特别熟悉,但一种明显的做事方法是“保存”用户正在做的任何事情并重现这些说明以保存它们。这是一个执行此操作的示例(它在您右键单击时保存,并且我也仅在鼠标左键按下时才随意绘制):
import processing.svg.*;
boolean record;
ArrayList<PVector> positionsList;
void setup() {
size(800,600);
positionsList = new ArrayList<PVector>();
}
void draw() {
background(255);
fill(255);
strokeWeight(1);
for (PVector p : positionsList) {
ellipse(p.x,p.y,100);
}
ellipse(mouseX,100);
if (record) {
positionsList.add(new PVector(mouseX,mouseY));
}
}
void mousePressed() {
record = mouseButton == LEFT;
if (mouseButton == RIGHT) {
beginRecord(SVG,"frame.svg");
fill(255);
strokeWeight(1);
for (PVector p : positionsList) {
ellipse(p.x,100);
}
endRecord();
}
}
void mouseReleased() {
record = false;
}
在绘图时:
文件(此处为 png,但在我的计算机上保存为 svg):
希望有帮助。玩得开心!
,import processing.pdf.*;
PShape shape;
void setup () {
size(1080,1080);
beginRecord(PDF,"drawing.pdf");
shape = loadShape("shape.svg");
shapeMode(CENTER);
background(0,255,0);
}
void draw() {
shape.disableStyle();
fill(255);
strokeWeight(10);
shape(shape,mouseX,200,200);
}
void keyPressed() {
if (key == 's') {
endRecord();
exit();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。