Задачка такая, для примера возьмем допустим синус и надо построить его график вдоль окружности с центром в начале координат.
Как координаты синуса получить понимаю, а как его закруглить?
Евгений Петряев, Если функция не периодическая, то я не знаю, можно ли её на окружности построить. Можете построить график схематически для параболы, например? Для периодических функций всё просто: r(θ) = r + с1*f(с2 * θ), где f - периодическая функция, r - радиус окружности, с1 - амплитуда, а c2 - частота. Для перевода из полярных в декартовы координаты есть простые формулы:
x = r * cos(θ)
y = r * sin(θ)
Если нужно по точкам рисовать, можно брать θ от 0 до 2π, вычислять радиус и переводить всё в декартовы координаты:
#!/usr/bin/env ruby
require 'csv'
csv = CSV.new($stdout)
csv << ['x', 'y']
(0..2.0 * Math::PI).step(0.0001).each do |angle|
rad = 1 + 0.07 * Math.sin(70.0 * angle)
x = rad * Math.cos(angle)
y = rad * Math.sin(angle)
csv << [x.round(4).to_s, y.round(4).to_s]
end
Вот, что у меня вышло для кубической параболы (y = x³)
Я просто возвёл синус в предыдущей формуле в куб: r(θ) = 1 + 0.07sin(θ70)³
Если этот результат подходит, то можно так любую практически функцию построить - сначала делаете аргумент периодическим с помощью периодической функции (sin, cos, mod), а потом производите с ним нужные преобразования