Получить радиус от круга до углов экрана - PullRequest
0 голосов
/ 26 октября 2018

Я следовал онлайн-уроку, я не понимал, как профессору удалось узнать расстояние круга от верхнего левого угла экрана:

//calculate the distance from epicenter (of a circle) to the top left corner of the screen

double theta = atan(epicenter.dy/epicenter.dx);
double distanceToCorner = epicenter.dy / sin(theta);

Я хотел бы знать, как получить расстояние от всех остальных углов экрана (и, возможно, получить объяснение того, что было сделано).

Спасибо

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Я знаю, что это не ответ, но если я понимаю, что вы имеете в виду, то это изображение может быть полезным.

image

0 голосов
/ 26 октября 2018

Предполагая, что в Android вы можете получить ширину и высоту экрана, вы можете просто посчитать расстояние по горизонтальной и вертикальной оси отдельно.Получив расстояния по этим осям, вы можете использовать уравнение Пифагора, например

dist = sqrt( dx^2 * dy^2 )

. Чтобы сделать его более гибким, просто создайте функцию, которая принимает угловое положение в качестве параметра и задайте dx * 1005.* и dy как абсолютная разница угла и местоположения эпицентра.

Возвращаясь к вашему вопросу и atan (...) , я не совсем понимаюнеобходимость использования этого здесь, за исключением случаев, когда это проект для математического класса:)

...