如何检查在 Adafruit TFT 屏幕上绘制的两个圆圈是否相互接触



im 在 Adafruit TFT 1.8 屏幕上制作(或者更确切地说,试图制作,哈哈(贪吃蛇游戏。然后我当然需要蛇头知道它何时击中"点",因此我需要知道两个大小均匀的圆圈何时相互接触。但是,我的函数不起作用(换句话说,打印"不触摸"(。

我试图遵循以下公式:(sqrt(dx 2+ dy 2((

两个圆的

半径都是 3,我通过将圆的屏幕位置 x 和 y 相加来获得公式的中心(我什至正确获得中心吗?

void pointCondition() {
  double centerPoint = pointPositionX + pointPositionY;
  double centerSnakeHead = positionX + positionY;
  int distanceBetweenCenter = (sqrt(centerPoint * 3 + centerSnakeHead * 3));
  int weight = 3 / 2;
  if (distanceBetweenCenter < weight) {
    Serial.println("TOUCHING");
  } else {
    Serial.println("NOT TOUCHING");
  }
}

你能看出我做错了什么吗?

你需要这样的东西:

double dx = pointPositionX - positionX,
       dy = pointPositionY - positionY,
       d  = sqrt(dx * dx + dy * dy);
bool touching = d <= 3;

最新更新