如何从外部if语句访问值[关闭]

问题描述 投票:0回答:1

如何从

if
语句外部访问 var 值。我想从
brightestX
语句外部访问
if(video.available)
值。

void draw(){
  if (video.available()) 
  {
    video.read();
    image(video, 0, 0, width, height);
    int brightestX = 0; 
    int brightestY = 0; 
    float brightestValue = 0; 

    video.loadPixels();
    int index = 0;
   
    for ( int y = 0; y < video.height; y++) {
        for ( int x = 0; x < video.width; x++) {
          int pixelValue = video.pixels[index];
          float pixelBrightness = brightness(pixelValue);

          if (pixelBrightness > brightestValue) {
              brightestValue = pixelBrightness;        
              brightestY = y;
              brightestX = x;
          }
          index++;
        }
    }
    fill(255, 204, 0, 128);
    ellipse(brightestX, brightestY, 200, 200);  
  }
}
java arduino processing
1个回答
1
投票

只需在

if
条件范围之外声明要访问的变量即可。您可以稍后在
if
条件中引用相同的变量来更新它们,然后在
if
之后您可以读取这些更新的值。当然,这些值只会在视频可播放时更新:

void draw(){
  int brightestX = 0; 
  int brightestY = 0; 
    
  if (video.available()) 
  {
    video.read();
    image(video, 0, 0, width, height);
    float brightestValue = 0; 

    video.loadPixels();
    int index = 0;

    for ( int y = 0; y < video.height; y++) {
        for ( int x = 0; x < video.width; x++) {
          int pixelValue = video.pixels[index];
          float pixelBrightness = brightness(pixelValue);

          if (pixelBrightness > brightestValue) {
              brightestValue = pixelBrightness;        
              brightestY = y;
              brightestX = x;
          }
          index++;
        }
    }
    fill(255, 204, 0, 128);
    ellipse(brightestX, brightestY, 200, 200);  
  }
  
  println(brightestX, brightestY); 
    
}

如果有帮助,另请查看 Java Scope

© www.soinside.com 2019 - 2024. All rights reserved.