Для заданной координатами x и y точки проверить принадлежит ли она закрашенной области на рисунке javascript

введите сюда описание изображения

Не могу решить с окружностью

Треугольник:

x=parseFloat(prompt('x')) 
y=parseFloat(prompt('y')) 
if(x>=0 && x<=6 && y<=0 && y>=-6) 
document.write('true') 
else document.write('false') 

Ответы (2 шт):

Автор решения: OPTIMUS PRIME

На самом деле с окружностью проще (мне показалось), потому что там нужна просто теорема Пифагора: x² + y² должно быть меньше, чем квадрат радиуса

А с треугольником единственное, что придумалось: взять одну фиксированную точку (6; 0) и через вторую пару точек, которую введут, провести прямую и проверить её угол, образованный с осью X. Если меньше 45, значит попадает.

А т.к. в return записаны логические выражения, сразу и возвращается true или false.

function isInside(x, y){
  if( x < 0 ) return false;
  
  if( 0 <= y && y <= 6 && 0 <= x && x <= 6 ){ /* Квадрат с сектором */
    return x*x + y*y <= 36;
  }
  
  if( -6 <= y && y <= 0 && 0 <= x && x <= 6){ /* Квадрат с треугольником */
  
    // `x1` → 6, `y1` → 0,
    // `x2` → x, `y2` → y
    // tg a = (y2 - y1) / (x2 - x1)
    
    let angle = Math.atan( Math.abs( y / (x - 6) ) ) * 180/Math.PI;
    
    return angle <= 45;
  }
}

// Треугольник
console.log( 3, -3, isInside(3, -3) ); // true;
console.log( 2, -3, isInside(2, -3) ); // true;
console.log( 4, -3, isInside(4, -3) ); // false;

// Сектор
console.log( 2, 2, isInside(2, 2) ); // true;
console.log( 2, 5, isInside(2, 5) ); // true;
console.log( 4, 4, isInside(4, 4) ); // true;
console.log( 4, 5, isInside(4, 5) ); // false;

→ Ссылка
Автор решения: Igor

Для всей фигуры: x >= 0 && y >= x - 6 && y * y + x * x <= 36

→ Ссылка