Показать сообщение отдельно
  #1 (permalink)  
Старый 20.06.2012, 14:16
Ren Ren вне форума
Новичок на форуме
Отправить личное сообщение для Ren Посмотреть профиль Найти все сообщения от Ren
 
Регистрация: 18.06.2012
Сообщений: 2

Flot Как передать переменную в функцию отрисовки точки на графике
Здравствуйте.

Мне нужно построить точки на графике трех типов:
- серые кружочки;
- белые кружочки;
- серые квадратики;
И чтобы фигуре начиная с некоторого номера, рисовался номер точки.

В документации к flot (http://flot.googlecode.com/svn/trunk/API.txt) говорится о том, что можно поменять вывод точек на графике, например так

function grect(ctx, x, y, radius, shadow)
{
ctx.beginPath();
ctx.fillStyle = "#999";
ctx.fillRect(x - size, y - size, 2*size, 2*size);
ctx.strokeStyle = '#000';
ctx.strokeRect(x - size, y - size, 2*size, 2*size);
}

series.points.symbol = grect;

Я создал три объекта series, и у каждого своя функция отрисовки точек:

series[0].points.symbol = gcircle;
series[1].points.symbol = wcircle;
series[2].points.symbol = grect;

Можно ли как нибудь передать в эту функцию отрисовки свою переменную (номер точки)?

Я пробовал:

- через глобальную переменную - счетчик, но при наведении на точку счетчик инкрементируется и пишет другой номер.

- через глобальный массив, куда запоминал координаты точек и их номера, но тоже не помогло, поскольку объектов siries три штуки, и номера сбиваются.

Подскажите, как можно решить эту проблему?

И можно ли у одного siries у разных точек задавать разные функции отрисовки? Например, половина квадратиков, а половина кружочков.

Заранее спасибо.
Ответить с цитированием