Содержание
В данном разделе представлен ряд калькуляторов для определения координат, числовые значения которые могут быть необходимы для создания управляющих программ для станков с числовым программным управлением (ЧПУ), а также для других технических и геометрических расчетов и вычислений.
Предположим мне нужны координаты 360 точек на окружности, по одной на каждый градус поворота
Где i — номер точки, n — кол-во точек = 360, R — радиус, x[0] и y[0] — координаты центра окружности
Вот только таким способом вычисляются только эти четыре точки:
Как пройтись по всем 360-ти точкам?
2 ответа 2
Я предполагаю, что нужны именно целочисленные координаты. В таком случае следует выполнять округление после умножения на радиус.
Это по-прежнему не гарантирует, что получатся все 360 точек, но теперь их не всегда будет 4.
Если же целочисленные координаты не требуются, то вместо int следует использовать double:
Известно: радиус окружности, координаты центра окружности O(ox,xy) , координаты точки A(ax,ay) , координаты точки B(bx,by) . И вопросов сразу несколько, они на картинке. И если можно, подробнее, я очень глупый.
Ну, если Вы "очень глупый", то зачем Вам эти ответы? Чтобы заставить кого-то поверить, что Вы "довольно умный"? Это Вы пришли к этому мнению после того, как решили доказать кому то, что Вы остроумный чтоль?)
И да! я хочу доказать себе, что пойму, если мне грамотно обьяснить! Так как обьяснили, за что Всем кто не умничает, а помогает, огромное Спасибо!
задан 9 Сен ’13 22:59
shatal
12 ● 2 ● 7 ● 24
100% принятых
Ну, если Вы "очень глупый", то зачем Вам эти ответы? Чтобы заставить кого-то поверить, что Вы "довольно умный"?
3 ответа
Чтобы ответить на поставленные вопросы, достаточно перейти к полярным координатам, разместив полюс в центре окружности $%O(x_0, y_0)$%: $$egin
отвечен 10 Сен ’13 0:19
Мне кажется, этот способ несколько хуже, потому что он требует многих приближённых операций с неизбежными ошибками округления. Если бы речь шла о делении дуги на, скажем, 7 частей, но это было бы естественно, но когда делить приходится на две части, то там из "иррациональных" операций достаточно извлечения квадратных корней.
@falcao, тригонометрия позволяет находить синусы и косинусы половинных углов. при этом тоже используется не более чем вычисление квадратного корня .
@all_exist: всё зависит от того, какие формулы полагается использовать. Если сначала находится синус или косинус, потом угол, потом половина угла, а потом синус или косинус половинного угла, то здесь могут быть потери при округлениях.
Координаты векторов $%vec
Зная координаты вектора, можно найти квадрат его длины как сумму квадратов координат. Для предыдущего примера получится $%2^2+(-1)^2=5$%. Извлекая квадратный корень, находим длину вектора (в примере это даёт $%sqrt<5>$%). Это радиус окружности $%r$%.
Для того, чтобы разделить дугу на 4 равные части, достаточно научиться делить её на 2 равные части. Тогда сначала находим координаты точки $%E_1$%, а далее, зная их, по той же процедуре делим на равные части дуги $%AE_1$% и $%E_1B$%, выявляя точки $%E_0$%, $%E_2$%.
Сначала находим сумму векторов $%vec
Теперь о длине дуги: она равна $%ralpha$%, где $%alpha$% — угол между векторами. Радиус мы знаем, и остаётся найти угол. Сначала находим его косинус: это будет отношение скалярного произведения векторов к произведению их длин. Длины нам известны, и обе они равны $%r$%. Скалярное произведение есть сумма произведений координат. Например, у векторов с координатами $%(4;-1)$% и $%(3;7)$% скалярное произведение равно $%4cdot3+(-1)cdot7=5$%. Поделив его на произведение длин векторов, находим $%cosalpha$%. Тогда сам угол будет равен арккосинусу полученного числа.
отвечен 9 Сен ’13 23:55
falcao
243k ● 1 ● 34 ● 48
@falcao, надо ещё оговорить случай, в котором делят дугу, опирающуюся на угол больше развёрнутого.
@all_exist: я не забыл про этот случай, но на рисунке была указана именно та дуга, которая определяется векторами, а не просто радиусами. И если действовать через координаты векторов, как это здесь и предлагается, то дуга автоматически оказывается той, какая нужна.
@falcao, Ну, картинка весьма условная.
то дуга автоматически оказывается той, какая нужна. — Например, окружность с центром в начале координат и точки $%A, B$%, расположенные в третьей и четвёртой четвертях. Дуга интересует верхняя, а сумма векторов пойдёт вниз.
@all_exist: то, что дуг в общем случае две, это понятно. Но здесь условие дано на рисунке. И я так понял, что имеется в виду наименьшая из дуг, потому что на другом из аналогичных рисунков того же автора были проведены касательные, и там обозначения были использованы те же самые. То есть изначально я хотел учесть случай второй дуги, а потом не стал этого делать по указанной причине. Сумма векторов там автоматически указывает нужное направление.
@falcao, Если условие брать с рисунка, то имеем, что $$a_x+b_x=2o_x,; a_y = b_y,; E_<1x>=o_x$$ ну, и так далее.
@all_exist: хочу ещё раз объяснить, чем я руководствовался. Вот предыдущий вопрос от того же автора здесь. Судя по общим обозначениям, это та же ситуация. Наличие касательных и точки $%C$% указывает на меньшую дугу.
Ну, созрел ещё тогда такой вариант.
Рассмотрим комплексную плоскость, в которой точка $%z=0$% совпадает с центром окружности, а действительная и мнимая оси параллельны осям $%Ox$% и $%Oy$%. Тогда точки $%A, ; B$% будут соответствовать числам $%z=a_A+b_Acdot i$% и $%w=a_B+b_Bcdot i$%.
Нетрудно показать, что середина дуги — точка $%E_1$%, будет соответствовать числу $%sqrt$%, причём квадратный корень легко вычисляется в алгебраической форме (можно формулу выписать в общем виде). а ветвь корня выбирается в соответствии с заданной дугой. Затем аналогично делим дуги $%AE_1$% и $%E_1B$% пополам, находя точки $%E_0,; E_2$%.
отвечен 10 Сен ’13 13:03
Здравствуйте
Математика — это совместно редактируемый форум вопросов и ответов для начинающих и опытных математиков, с особенным акцентом на компьютерные науки.