Метод(функция) возвращающий массив координат, по которым можно построить дугу окружности.

программирование математика ruby

Пишу программу на Ruby. Задача - получить координаты точек для построения дуги окружности в прямоугольной системе координат. Известны координаты начальной и конечной точки, а так же координаты центра окружности. Результат желательно получить в виде двумерного массива координат.
Пример: A(0, 5); B(5, 0), C[центр](5, 5)
[
[0,5],[0,4],[1,3],[1,2],[2,1], [3,1],[4,0],[5,0]
]
Ответы:
Проверяем что расстояние до центра валидное. Пусть будет так.
Далее делаем преобразование координат смещением в центр. Запомниаем преобразование (потом будем восстанавливать ибо)
Далее делаем поворо умножением на матрицу, чтобы точку а в новых координатах привести к виду A(x,0).
//неплохо было бы знать в какую сторону обходим окружность.
Дальше до момента попадания в точку B записывам координаты вида x*(cosF,sinF) в массив, с небольшим шагом градуса F. Чем меньше шаг, тем больше точность и красивие окружность.
Вот собственно и получили правильные координаты. Дальше домножаем их на обратную матрицу поворота, после чего обратно сдвигаем их.
Вуаля, получили валидный массив координаты.


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.