在处理中计算 Pi 的值

Calculating the Value of Pi in Processing

Processing 是一个利用 Java 的环境。我正在尝试使用 Monte Carlo 方法来计算 Pi 的值。我正在尝试创建一个飞镖盘(正方形内的圆圈),并且每当在圆圈内选择随机选择的点时 return "Yes"。

处理使用坐标系,左上角为原点,向右为正x轴,向下为y轴。

这是我的代码:

float circleX;
float circleY;
float r;

void setup() {
  size(360, 360);
  circleX = 50;
  circleY = 50;
  frameRate(0.5);
}

void draw() {
  background(50);
  fill(255);
  stroke(255);
  fill(100);
  ellipse(180, 180, 360, 360);
  ellipse(circleX, circleY, 10, 10);
  circleX = random(360);
  circleY = random(360);

  r = (circleX-180)*(circleX-180) + (180-circleY)*(180-circleY);

  if (r < 32400) {

    print("Yes! ");

  }
}

但是,在许多情况下,圆圈内的点不会 return "Yes," 而圆圈外的点会 return "Yes." 有什么想法是错误的吗?

您必须交换生成随机坐标并绘制它的线:

  // Generate new random coordinates
  circleX = random(360);
  circleY = random(360);
  // Draw circle at those coordinates
  ellipse(circleX, circleY, 10, 10);

  // Check whether the coordinates are withing the big circle
  r = (circleX-180)*(circleX-180) + (180-circleY)*(180-circleY);

按照您的操作方式,在生成新坐标之前先绘制圆,然后进行检查。