Canvas画扇形:处理:分割屏幕=1画布(split canvas)

I'm working on a visualization for a 7680x1080 projection. visualization

The production company wants me to out put this as 3840x2160. output

我将如何在处理中做到这一点,以便处理仍然将其视为 1 个大画布,我可以在整个宽度上拥有无缝的图形?

谢谢!Serge

1

PGraphicsPImage对象中进行处理绘图(在此处了解更多信息:https://processing.org/reference/PImage.html

然后,您可以读取放置在 PGraphics 画布中的像素,并将它们拆分为 2 个 PImage 对象

例子:

int w = 500;
int h = 500;
PImage topCanvas;
PImage bottomCanvas;
PGraphics mainCanvas;
void setup() {
  background(255);
  size(w, h, P3D);
  mainCanvas = createGraphics(w, h, P2D);
  mainCanvas.beginDraw();
  for(int i=0; i<w; i++){
     for(int j=0; j<h; j++){
        mainCanvas.stroke( random(255), random(255), random(255), random(255)); 
        mainCanvas.point(i, j); 
     } 
  }
  mainCanvas.endDraw();
} 
void draw(){
  topCanvas = mainCanvas.get(0,0,w, h/2);
  bottomCanvas = mainCanvas.get(0,h/2,w, h/2);
  image(topCanvas, 0, 0);
  image(bottomCanvas, 0, h/2);
}
0

处理已经是一个大画布。您可以控制绘制内容和绘制位置。

您可以跟踪视口的大小和位置,然后将绘图拆分为函数:

float viewportTwoX;
float viewportTwoY;
float viewportWidth;
float viewportHeight;
void setup() {
  size(768, 108);
  viewportTwoX = width/2;
  viewportTwoY = 0;
  viewportWidth = width/2;
  viewportHeight = height;
}
void draw() {
  background(0);
  drawViewportOne();
  drawViewportTwo();
}
void drawViewportOne() {
  fill(64);
  noStroke();
  rect(0, 0, viewportWidth, viewportHeight);
  fill(255);
  text("viewport 1", viewportWidth/2, viewportHeight/2);
}
void drawViewportTwo() {
  translate(viewportTwoX, viewportTwoY); 
  fill(128);
  noStroke();
  rect(0, 0, viewportWidth, viewportHeight);
  fill(255);
  text("viewport 2", viewportWidth/2, viewportHeight/2);
}

然后,如果要更改第二个视口的位置,则只需更改这些变量的值:

void setup() {
  size(384, 216);
  viewportTwoX = 0;
  viewportTwoY = height/2;
  viewportWidth = width;
  viewportHeight = height/2;
}

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(696)
本地文件:本地下层文件(local downlevel document windows 10)
上一篇
程序设计基础教材:代数结构与程序设计(algebraic structure)
下一篇

相关推荐

  • cv树洞柒夜事件CV树洞中的秘密与惊奇

    cv树洞柒夜事件是一个有趣的计算机视觉活动,它提供了一种新的方式来利用计算机视觉技术来探索和发现景观。它始于2020年7月,由一群热爱计算机视觉的研究者和开发者发起,他们希望通过使用机器学习技术来探索景观中的精彩之处。cv树洞柒夜事件的目标是使用机器学习技术来探索景观中的精彩之处,并利用这些发现来改善景观设计。参与者需要使用机器学习技术来探索景观,并利用这些发现来改善景观设计。参与者可以使用Python,OpenCV,TensorFlow等技术来完成任务,并将其发布在GitHub上。…

    2023-01-09 12:42:42
    0 87 95
  • cvt变速箱异响:排查CVT变速箱异响的方法

    cvt变速箱异响是指变速箱在运行时发出的异常噪音,这种异响可能是由于变速箱内部零件磨损、油质不佳或润滑不良等原因引起的。代码如下:…

    2023-02-13 07:48:44
    0 10 96
  • cheers for还是to:Cheers to a Bright Future!

    示例示例Cheers for和to都可以用来表达祝福或者庆祝的意思。Cheers for:表示对某人或某事的支持,是一种赞扬的表达方式。…

    2023-02-27 02:56:18
    0 12 17
  • css初始化样式:This is a Title

    示例示例CSS初始化样式是指在各浏览器中重置默认的样式,以便于在所有浏览器中保持一致的显示效果。下面是一个常用的CSS初始化样式代码:…

    2023-01-12 02:04:17
    0 60 42
  • for循环continue:How to Use the continue Statement in a for Loop

    示例示例for循环是让程序跳过当前循环,继续下一次循环。代码示例:…

    2023-02-26 12:04:08
    0 69 25
  • linux使用yum安装httpd:如何使用yum安装Apache HTTP Server (httpd)

    使用yum安装httpd:打开终端,输入以下命令:…

    2023-01-11 11:09:38
    0 27 66
  • javascript 替换字符串 Hello JavaScript

    JavaScript 替换字符串可以使用 String.prototype.replace() 方法来实现。该方法接受两个参数,第一个参数是要被替换的子字符串,第二个参数是用来替换的字符串。…

    2023-03-11 09:49:43
    0 10 51
  • vscode如何运行代码:如何在VSCode中运行代码

    示例示例在vscode中,打开要运行的代码文件,如下代码示例:点击vscode左上角的“运行”按钮,或者使用快捷键Ctrl+F5来运行代码,在vscode右下角的“输出”窗口中会显示出运行结果:…

    2023-03-09 09:29:23
    0 88 24

发表评论

登录 后才能评论

评论列表(85条)