Напишите программу которая рассчитывает положение точки относительно окружности

Принадлежит ли точка кругу?

Определить, принадлежит ли точка с координатами (x; y) кругу радиуса R с центром в начале координат.

Пользователь вводит координаты точки и радиус круга.

Если выбрать точку на координатной плоскости, то можно увидеть, что проекции ее координат на оси x и y являются катетами прямоугольного треугольника. А гипотенуза этого прямоугольного треугольника как раз показывает расстояние от начала координат до точки. Таким образом, если длина гипотенузы будет меньше радиуса круга, то точка будет принадлежать кругу; иначе она будет находится за его пределами.

Длину гипотенузы вычисляется по теореме Пифагора: квадрат гипотенузы равен сумме квадратов катетов. Откуда гипотенуза равна квадратному корню из суммы квадратов катетов.

Пример выполнения программы:

Обратите внимание, можно вводить отрицательные координаты. При возведении в квадрат все-равно будет получено положительное число.

Вычисление положения точек в окружности

У меня есть немного пустой ум на этот момент. У меня есть проблема, когда мне нужно вычислить положение точек вокруг центральной точки, предполагая, что все они равноудалены от центра и друг от друга.

количество точек является переменной, так что это DrawCirclePoints(int x) Я уверен, что есть простое решение, но для жизни меня, я просто не вижу его:)

11 ответов:

точка под углом тета на окружности, центр которой (x0,y0) и чей радиус r и (x0 + r cos theta, y0 + r sin theta) . Теперь выберите theta значения, равномерно расположенные между 0 и 2pi.

учитывая длину радиуса r и угол t в радианах и центре круга (h,k), вы можете вычислить координаты точки на окружности следующим образом (это псевдокод, вам придется адаптировать его к вашему языку):

вот решение с использованием C#:

пример вывода из DrawCirclePoints(8, 10, new Point(0,0)); :

используя один из приведенных выше ответов в качестве базы, вот пример Java / Android:

Я должен был сделать это в интернете, так что вот версия coffeescript @scottyab это ответ выше:

для завершения то, что вы описываете как «положение точек вокруг центральной точки(предполагая, что все они равноудалены от центра)» — это не что иное, как «полярные координаты». И вы просите способ преобразования между полярными и Декартовыми координатами, которая дается как x = r*cos(t) , y = r*sin(t) .

здесь R версия, основанная на ответе @Pirijan выше.

угол между каждой из ваших точек будет 2Pi/x таким образом, вы можете сказать, что для точек n= 0 to x-1 угол от определенной 0 точки равен 2nPi/x .

предполагая, что ваша первая точка находится в (r,0) (где r-расстояние от центральной точки), то положение относительно центральной точки будет:

на основе ответа выше от Даниила, вот мой взять с помощью Python3.

Вычисление положения точек в окружности

в данный момент у меня немного пустой ум. У меня есть проблема, когда мне нужно вычислить положение точек вокруг центральной точки, предполагая, что они все равноудалены от центра и друг от друга.

количество точек является переменным, поэтому это DrawCirclePoints(int x) Я уверен, что есть простое решение, но для жизни меня, я просто не вижу его:)

11 ответов

точка под углом тета на окружности, центр которой (x0,y0) и чей радиус r is (x0 + r cos theta, y0 + r sin theta) . Теперь выберите theta значения, равномерно расположенные между 0 и 2pi.

учитывая длину радиуса r и угол t в радианах и центре круга (h,k), вы можете рассчитать координаты точки на окружности следующим образом (это псевдокод, вам придется адаптировать его к вашему языку):

вот решение с использованием C#:

пример вывода из DrawCirclePoints(8, 10, new Point(0,0)); :

используя один из приведенных выше ответов в качестве основы, вот пример Java / Android:

Я должен был сделать это в интернете, так что вот версия coffeescript @scottyab это ответ выше:

для завершения то, что вы описываете как «положение точек вокруг центральной точки(предполагая, что все они равноудалены от центра)», — это не что иное, как «полярные координаты». И вы просите способ преобразования между полярными и Декартовыми координатами, которая дается как x = r*cos(t) , y = r*sin(t) .

рабочее решение на Java:

здесь R версия, основанная на ответе @Pirijan выше.

угол между каждой из ваших точек будет 2Pi/x таким образом, вы можете сказать, что для очков n= 0 to x-1 угол от определенной 0 точки равен 2nPi/x .

предполагая, что ваша первая точка находится в (r,0) (где r-расстояние от центральной точки), то позиции относительно центральной точки будут:

основываясь на ответе выше от Даниила, вот мой подход с использованием Python3.

Поделиться или сохранить к себе: