标签: processing

如何使用Processing为窗口设置动画?

我正在使用Processing来学习编程,并想知道是否有办法使OS窗口增长,缩小,使其透明或赋予它圆形边缘.据我所知,Processing使用Java的Frame类而不是JFrame类,但我无法弄清楚如何做到这一点.

谢谢你的帮助.

作为参考,类似的问题在 Re:强迫窗口停留在所有其他窗口之前 - 回复#3

processing

5
推荐指数
1
解决办法
432
查看次数

处理:如何提高程序的帧率?

所以我现在已经在Processing工作了几个星期,虽然我没有编程方面的经验,但我已经转向了更复杂的项目.我正在编程一个进化模拟器,它会生成具有随机属性的生物.

最终,我将添加复制品,但截至目前,这些生物只是漂浮在屏幕周围,并且稍微跟着鼠标.它与来自线路的声音相互作用,但我对这些部分进行了评论,以便可以在画布上查看,它不应该真正改变问题,我只是想我会指出它.

截至目前,帧速率对我来说远非理想,随着更多生物的产生,它逐渐降低.我是否犯了一些基本错误,或者我只是每帧运行太多功能?

这里的源代码,你可以在浏览器中玩它在这里:

//import ddf.minim.*;
//import ddf.minim.signals.*;
//import ddf.minim.analysis.*;
//import ddf.minim.effects.*;

//Minim minim;
//AudioInput in;
boolean newCreature = true;
boolean matured[];
int ellipses[];
int hair[];
int maxCreatureNumber = 75;
//int volume;
//int volumeTolerance = 1;
int creatureIndex = -1;
int creatureX[];
int creatureY[];
float strokeWeightAttribute[];
float creatureSize[];
float creatureEndSize[];
float creatureXIncrement[];
float creatureYIncrement[];
float bubbleSize;
float easing = 0.05;
float angle = 0.00;
color colorAttribute[];

void setup() {
    background(0);
    size(1000,500);
    noFill();
    //minim = new Minim(this); …
Run Code Online (Sandbox Code Playgroud)

processing optimization

4
推荐指数
3
解决办法
6704
查看次数

处理中的当前填充颜色

在处理中,我可以调用fill(myRGBValue) 设置填充颜色。有没有办法让我查询当前的填充颜色?

processing colors

4
推荐指数
1
解决办法
2485
查看次数

size() 函数在Processing 3.0 中不起作用

我试图通过传递图像宽度和高度的参数来设置处理 3.0中的窗口大小。但是,处理会抛出错误并要求检查参考部分,但这没有帮助。代码如下。

PImage img;
...

void setup(){
  img = loadImage("XYZ.JPG");
  float w = img.width;
  float h = img.height;
  size(int(w), int(h));
  image(img, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)

和错误如下:

size() function cannot be used here
Run Code Online (Sandbox Code Playgroud)

java processing

4
推荐指数
1
解决办法
5130
查看次数

将 SVG 加载到 P5 草图

我已经在Processing 中编程一段时间了。我还处理过形状和SVG文件。在处理中获得关于文件的这种卑微经历SVG让我认为在 中也会有同样的故事P5.js,但事实显然并非如此,并促使我寻求帮助。

回到处理我只会有这样的简单代码:

PShape shape;
/***************************************************************************/
void setup() 
{
  size(400, 400);
  shapeMode(CENTER);
  shape = loadShape("bot1.svg");
} 
/***************************************************************************/
void draw() 
{
  background(100);
  pushMatrix();
  translate(width/2, height/2);
  shape(shape, 0, 0);
  popMatrix();
}
Run Code Online (Sandbox Code Playgroud)

P5不是这样的。相当于什么P5.js?

    var shape;
    var canvas;
/***************************************************************************/
    function setup() 
    {
      canvas = createCanvas(400, 400);
      canvas.position(0, 0);
      //shapeMode(CENTER);
      //shape = loadShape("bot1.svg");
    } 
    /***************************************************************************/
    void draw() 
    {
      background(100);
      push();
      translate(width/2, height/2);
      //shape(shape, 0, 0);
      pop();
    }
Run Code Online (Sandbox Code Playgroud)

processing svg shapes p5.js

4
推荐指数
1
解决办法
1万
查看次数

在处理 3 时将变量应用于屏幕尺寸

该代码在处理 2 中工作正常,但在 size() 函数中使用处理 3 中的变量不起作用,我将如何在处理 3 中实现 displaywdith-100

int val, screen_increment, old_x=0, old_y=0;     
String inString;  
int lf = 10;      
void setup() 
{

  size(displayWidth-100, 600);//  The screen height is set to be 600, which matches the scaled data,
  String portName = Serial.list()[0];
  println(Serial.list());

  myPort = new Serial(this, portName, 115200);
  myPort.bufferUntil(lf);
  background(0);
}//setup
Run Code Online (Sandbox Code Playgroud)

java processing

4
推荐指数
1
解决办法
1533
查看次数

使用处理 (p5.js) 的二次曲线上的点

我使用这个公式来计算二次曲线上的点:

  cPx2 = (1-t)*(1-t)* x1+2 * (1-t)*t*qcX + t*t*x2;
  cPy2 = (1-t)*(1-t)* y1+2 * (1-t)*t*qcY + t*t*y2;
Run Code Online (Sandbox Code Playgroud)

当我设置 t = 10 并遍历曲线时,我得到了这个:

四边形曲线上的点

看起来它正在获得曲线上的点(花朵形状),但也获得了“控制点”上的所有点。

我用这个公式来生成点:

    flowerArray=[]
    for(let i = 0; i < numVertices+1; i++) {
    angle = i * spacing;
    x = centerX + cos(radians(angle)) * 180;
    y = centerY+ sin(radians(angle)) * 180;

    if(i == 0) {
      flowerArray.push(x,y);
    }else {
        cAngle = angle - spacing/2;
          cX = centerX + cos(radians(cAngle)) * 100;
          cY = centerY+  sin(radians(cAngle)) * 100;
      
    flowerArray.push(cX,cY,x,y)
    }
   } …
Run Code Online (Sandbox Code Playgroud)

processing quadratic-curve p5.js

4
推荐指数
1
解决办法
461
查看次数

旋转文本而不是处理中文本的位置

我正在尝试制作一个时钟并将所有数字放在正确的位置,但它们都旋转了,例如 6 倒置而 12 是正确的。反正有没有只旋转文本而不是文本的位置?

我的代码是

push();
  textSize(48);
  for (int i = 1; i < 13; i++) {
    int offset = -15;
    if (str(i).length() == 2) {
      offset -= 14.5;
    }
    rotate(radians(30));
    text(i, offset, -350);
    //println(i*30);
  }
  pop();
Run Code Online (Sandbox Code Playgroud)

java processing

4
推荐指数
1
解决办法
85
查看次数

像轮子一样围绕中心点旋转三角形

我想创建一个旋转函数,其中我的三角形可以像轮子一样自行旋转,但我与移动我的三角形的代码部分发生冲突,我尝试了很多解决方案但没有成功,也许如果你们中的一个人有线索,它会对人好点!

这是我的代码:

let triangle1;
let triangle2;
let triangle3;
let triangle4;
let triangle5;
let triangle6;
let speedX;
let speedY;
let startColor;
let endColor;
let amt = 0;

function setup() {
    startColor = color("hsl(144, 100%, 61%)");
    endColor = color("hsl(0,77%,36%)");
    createCanvas(windowWidth, 800);
    //creer notre triangle
    triangle1 = new Triangles(200, 100, 0, 4);
    /*    triangle2 = new Triangles(100, 50, 2, 0);
        triangle3 = new Triangles(50, 200, -1, 4);
        triangle4 = new Triangles(250, 400, 4, 4);
        triangle5 = new Triangles(150, 500, 0, 2);
        triangle6 = …
Run Code Online (Sandbox Code Playgroud)

javascript processing p5.js

4
推荐指数
1
解决办法
1672
查看次数

计算旋转以将对象与 3D 空间中的两点对齐

我正在处理动作捕捉数据,我想在处理中进行“蒙皮”。因此,基本上,我从数据中获得的每两个点都必须在其间添加一个 3D 对象(我现在将使用一个盒子,放置和旋转坐标是 3D 对象的中心)并旋转它,以便它在所有三个维度上与连接两点的向量对齐。

在这里,我们可以在左侧看到两点之间最初放置的框,在右侧看到现在正确旋转的框: 白色平行六面体的分割图像,未与图像左侧的红色对角线(左上到右下)对齐,并且白色平行六面体与图像右侧的红线对齐

我知道在处理中旋转对象的唯一方法是使用rotateX()、rotateY()、rotateZ()函数,它们使用欧拉角围绕全局(?)轴旋转对象。

现在我正在努力寻找一种正确计算这种旋转的方法。

我已经编写了一个用于计算两个向量之间的角度的函数:

float calcVectorAngle(PVector p1, PVector p2) {
    return acos((p1.dot(p2)) / (mag(p1.x, p1.y, p1.z) * mag(p2.x, p2.y, p2.z)));
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试将向量(两点之间)与每个旋转轴之一的单位向量结合起来:

float x = calcVectorAngle(vector, new PVector(1,0,0));
float y = calcVectorAngle(vector, new PVector(0,1,0));
float z = calcVectorAngle(vector, new PVector(0,0,1));
Run Code Online (Sandbox Code Playgroud)

但是当我使用这些值旋转对象时,旋转完全关闭。

代码示例:

PVector p1;
PVector p2;
PVector boxSize = new PVector(500, 100, 100);

void setup() {
    size(1000,1000,P3D);
    p1 = new PVector(100, 100, 0);
    p2 = new PVector(900, 900, -1000);
}

void draw() {
    background(125);
    strokeWeight(2); …
Run Code Online (Sandbox Code Playgroud)

math processing euler-angles

4
推荐指数
1
解决办法
1146
查看次数