Перейти к содержанию
Andreyka

Программа (Win) - полярные координаты а декартовые

Рекомендуемые сообщения

Андрей, а возможно ли в принципе, не в программе, она самодостаточна, по Вашему алгоритму рассчитать сектор 90гр.,

с постоянным шагом по координате X, задав кол-во точек, или шаг?

И второй вопрос, на глаз +- хотя бы порядок, время расчета 1500-2000 координат на Atmega с тактовой 16mHz.

Вы понимаете куда я клоню.

Поделиться сообщением


Ссылка на сообщение

Олег, в основе алгоритма элементарная тригонометрия

for (i = 0; i < holes; i++)
{
x[i] = radius * cos(angle + 2 * PI * i / holes) + centerX;
y[i] = radius * sin(angle + 2 * PI * i / holes) + centerY;
}

radius - радиус окружности

holes - на сколько частей делим.

angle - начальный угол

centerX/Y - смещение центра

 

Ваша задача видимо решается так.

a = arccos(x) - находим угол заданном X, y = sin(a) - находим координату Y для этого угла

 

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

тестовую болванку.

Если на поверку окажется что работает слишком медленно, то можно вычислять

синус и косинус "в ручную", при этом сократив количество операций.

Мне было достаточно вот такой точности, правда это было давно,

какой именно нужен был результат не помню :unknw:

// sin(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9! - x^11/11! +...(enough!)

// cos(x) = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! - x^10/10!

Арксинус (тоже надо смотреть чтобы не напахать лишний код)

// arcsin(x) = x + 1*(x^3)/2*3 + 1*3*(x^5)/2*4*5 + 1*3*5*(x^7)/2*4*6*7 +...

// + {1*3*5*...*(2n-1)*x^(2n+1)}/{2*4*6*...*(2n)*(2n+1)}

Арккосинус не вычислял, но полагаю алгоритм можно найти в сети.

Имею исходники в "оригинальном исполнении" (самодельная библиотека Си

для процессора 24-бит 186 ), могу скинуть на почту.

Поделиться сообщением


Ссылка на сообщение

Собственно, вот ради чего и затевалось, - чтобы не считать, не чертить, не кернить,

а сделать всё быстро и максимально точно, правда точность в этом примере не очень критична. :)

post-49871-062545600_1477988681_thumb.jpgpost-49871-027739200_1477988681_thumb.jpg

Поделиться сообщением


Ссылка на сообщение

Не в том смысле, что прога ненужная, но формулы можно и в эксель закинуть. А ещё можно по листам экселя расположить несколько разных расчетов. Перевод твердости там, расчет прочности и т.д. и т.п. В сети много таких помощников.

 

PS Andreyka, респект в любом случае. :good:

Поделиться сообщением


Ссылка на сообщение

Andreyka, а обратно считает? Из Декартовых в полярные?

Поделиться сообщением


Ссылка на сообщение

а обратно считает?

Хм..., не думал об этом, а оно надо? :unknw:

Поделиться сообщением


Ссылка на сообщение

Andreyka, было как-то надо, для одной задумки. Но это дело даже не следующего года ;-)

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу


×
×
  • Создать...

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.