Processing for Android

EN ES

intersectsSphere()

Esta función devuelve verdadero si el rayo dado cruza una esfera de radio r con una posición determinada por las transformaciones de geometría actualmente aplicadas a la escena. El rayo se puede calcular automáticamente a partir de las coordenadas de la pantalla como en el siguiente ejemplo:


void setup() {
  fullScreen(P3D);
}

void draw() {
  background(200, 0, 150);
  translate(width/2, height/2);  
  if (mousePressed && intersectsSphere(70, 0, 0)) fill(0, 0, 255);
  else fill(255, 0, 0);
  sphere(70);
}
                

También se puede proporcionar un rayo con origen y dirección arbitrarios:


PVector origin = new PVector();
PVector direction = new PVector();

void setup() {
  fullScreen(P3D);
}

void draw() {
  origin.set(width/2, height/2, 0);
  direction.set(-width/2, -height/2).normalize();
  
  background(200, 0, 150);
  translate(width/2, height/2);  
  if (mousePressed && intersectsSphere(70, origin, direction)) fill(0, 0, 255);
  else fill(255, 0, 0);
  sphere(70);
}