Моя функция:
Код: Выделить всё
boolean checkMousePos()
{
double rel_x = 200;
double rel_y = 200;
double distance = 0;
double rad = 130;
bool bCheck = false;
// Pythagoras
// distance = sqrt(((rel_x - size_x)sqrd) + ((rel_y - size_y)sqrd))
rad = rad * rad;
rel_x = rel_x * rel_x;
rel_y = rel_y * rel_y;
distance = sqrt(rel_x + rel_y);
if(distance x как 10 и относительный_point->y как 10 (за пределами радиуса грани датчика), bCheck вернет true. Точно так же фраза «is x or y > r» не может работать, потому что координаты x и y внутри круга могут достигать максимум 212 каждая, когда радиус равен 130.
Что я ошибся?
Подробнее здесь: [url]https://stackoverflow.com/questions/79787358/how-to-find-if-a-point-is-in-a-circle-in-c[/url]
Мобильная версия