gpt4 book ai didi

java - 为什么在导出 processing.org java pdf 时只显示一个框?

转载 作者:行者123 更新时间:2023-12-05 05:34:43 25 4
gpt4 key购买 nike

下面是我的代码,在运行时它显示了我想要的多个框,但是当我尝试导出时,它只在该帧位置显示一个框。我尝试在特定帧生成输出但它是同样的问题

import processing.pdf.*;
int ofs = 500;


boolean record;

void setup() {
size(1900, 1080, P3D);
}

void draw() {
if (record) {
beginRaw(PDF, "box.pdf");
}


background(255);
translate(width/2, height/2, -800);

rotateZ(0.3);
rotateY(frameCount/500.0);
float x = sin(radians(frameCount*0.1));
for ( int xo = -ofs; xo<=ofs; xo += 100) {
for ( int yo = -ofs; yo<=ofs; yo += 100) {
pushMatrix();
translate ( xo, yo, 0);
box(200*x);
fill(155,150,90);
strokeWeight(3*x);
popMatrix();
if (record) {
endRaw();
record = false;
}
}
}
}

void keyPressed() {
if (key == 'r') {
record = true;
}
}



最佳答案

太近了! :)

也许格式设置使问题更难发现。您正在调用嵌套在 for 循环中的 endRaw();(包含 pdf 记录)。

这意味着它只会拾取第一个框,因为 record 设置为 false,因此其他框将被忽略。

我建议使用编辑 > 自动格式 (CMD + T/Ctrl + T)。

只需将 if(record) 移动到嵌套的 for 循环之后:


import processing.pdf.*;
int ofs = 500;


boolean record;

void setup() {
size(1400, 580, P3D);
}

void draw() {
if (record) {
beginRaw(PDF, "box.pdf");
}


background(255);
translate(width/2, height/2, -800);

rotateZ(0.3);
rotateY(frameCount/500.0);
float x = sin(radians(frameCount*0.1));
for ( int xo = -ofs; xo<=ofs; xo += 100) {
for ( int yo = -ofs; yo<=ofs; yo += 100) {
pushMatrix();
translate ( xo, yo, 0);
box(200*x);
fill(155, 150, 90);
strokeWeight(3*x);
popMatrix();
}
}

// finish recording to PDF only after everything was drawn
if (record) {
endRaw();
record = false;
}
}

void keyPressed() {
if (key == 'r') {
record = true;
}
}


关于java - 为什么在导出 processing.org java pdf 时只显示一个框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73634805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com