Я пытаюсь нарисовать спектр звукового файла по кругу. Как это:Рисовать прямоугольники по формуле круга
Так по кругу, я просто хочу прямоугольники нарисованные, как вы видите на картинке.
У меня этот код:
public void onRender(Canvas canvas, FFTData data, Rect rect) {
canvas.drawCircle(rect.width()/2, rect.height()/2, 200, mPaint);
for (int i = 0; i < data.bytes.length/mDivisions; i++) {
byte rfk = data.bytes[mDivisions * i];
byte ifk = data.bytes[mDivisions * i + 1];
float magnitude = (rfk * rfk + ifk * ifk);
int dbValue = (int) (10 * Math.log10(magnitude));
}
}
Где FFTData является преобразование данных быстрого преобразования Фурье, что Android дает мне. Теперь в моем dbValue я получил силу сигнала. mDivisions - сколько баров я хочу. В настоящее время установлено 16, потому что я не знаю, сколько я могу установить на круг.
Я зациклился на том, как я могу нарисовать прямоугольник с его центром по круговой линии ... Поэтому я хочу прямоугольник, высота которого основана на dbValue, так что я получаю высокие и низкие прямоугольники. И центр должен быть помещен на мою круговую линию.
Может кто-нибудь помочь мне в этой математической формуле?
Что значит? – user1007522
Я решил вашу проблему только одной функцией, которой вы передали высоту вашего прямоугольника и степень от оси x, и нарисовать ее для вас, вы хотите, или ваша проблема решена. 'MySpectrumDrawer (int centerX, int centerY, int R , int height, int angel) 'http://i.imgur.com/bti4Sh3.jpg – mmlooloo
Прохладный, у меня есть все те же блоки прямо сейчас, но мне нужно перевести, повернуть. Можете ли вы поделиться своей функцией Вот? – user1007522