Тестируем CGraphic - вопросы и предложения - страница 2

 
o_O:

речи вроде про "пиксели" не шла.

Вы подали только массив Y. Значит по Х - это простой порядковый номер. Выдал GetX верно.

В описании чётко написано "координаты". Я понимаю, что координаты - это пиксели.
 
Vladimir Karputov:
В описании чётко написано "координаты". Я понимаю, что координаты - это пиксели.
нет, координаты с пикселями не должны быть связаны.
 
o_O:
нет, координаты с пикселями не должны быть связаны.
Тогда нет взаимосвязи с тем, что отрисовано (фактическое значение double) и координатами в пикселях. Подожду разъяснений.
 
Vladimir Karputov:
Тогда нет взаимосвязи с тем, что отрисовано (фактическое значение double) и координатами в пикселях. Подожду разъяснений.

не, тут всё верно продумано.

Ведь вы дали только один массив - Y.  Ему пришлось автовычислить точки для Х как порядковые.

Подайте в CurveAdd двумерный массив. например по Х пусть будет время (что в принципе логично для получения тиковых значений).  Посмотрим на результат.

---

Вот получить пиксельные координаты - это уже наверно другой вопрос. Посмотрите в код отрисовки (или где расчёт точек курвы). Как он пиксели считает. Может тот массив хранится.

 
o_O:
      //--- trim the name
      m_canvas.FontSizeSet(m_history.name_size);
      if(m_canvas.TextWidth(name)>m_history.name_width)
        {
         while(m_canvas.TextWidth(name+"...")>m_history.name_width)
            name=StringSubstr(name,0,StringLen(name)-1);
         name+="...";
        }

Обнаружил багу - бесконечный цикл while при небольшой m_history.name_width


Как вообще отключить эту History справа?

Спасибо за сообщение, исправим. Прямого способа отключить историю на данный момент нет, но можно выставить размер имени кривой  HistoryNameWidth и её обозначение HistorySymbolSize в ноль.
 
Roman Konopelko:
Спасибо за сообщение, исправим. Прямого способа отключить историю на данный момент нет, но можно выставить размер имени кривой  HistoryNameWidth и её обозначение HistorySymbolSize в ноль.

@Roman Konopelko

HistoryNameWidth- да, но уже после поправки этого зацикла

---

сделаете ли виртуальные функции?

Мне нужно у себя в потомке переопеделить функцию отрисовки гистограммы - понадобилось два цвета - для положительных и отрицательных значений.  А все не виртуал, переопределить нельзя (

 

@Roman Konopelko

Растолкуйте, пожалуйста, как читать 

GetX

Записывает координаты X для всех точек кривой в массив


- это всё-таки КООРДИНАТЫ (x,y) в пикселях или это переданные значения для построения кривой?

 
Vladimir Karputov:

@Roman Konopelko

Растолкуйте, пожалуйста, как читать 

GetX

Записывает координаты X для всех точек кривой в массив


- это всё-таки КООРДИНАТЫ (x,y) в пикселях или это переданные значения для построения кривой?

Методы GetX и GetY реализованые в классе CCurve и позволяют получить координаты кривой, которые использовались при её создание.
 
Roman Konopelko:
Методы GetX и GetY реализованые в классе CCurve и позволяют получить координаты кривой, которые использовались при её создание.
Пожалуйста напишите в справке - ... позволяют получить данные на основе которых построена кривая. Потому, что слово "координаты" очень перекликается со словом "пиксели".
 

@Roman Konopelko

в CalculateXAxis()

не хватает формата как для дата/время TimeToString

имеем только форматирование для double значений StringFormat.

      string xformat=m_x.ValuesFormat();
      m_xvalues[i]=(xformat==NULL) ? StringFormat("%7g",x) : StringFormat(xformat,x);

варианты:
- добавить переменную CAxis::m_bdatetime - которая скажет что надо вызывать функцию TimeToString при форматировании вместо StringFormat
- или вынести

      string xformat=m_x.ValuesFormat();
      m_xvalues[i]=(xformat==NULL) ? StringFormat("%7g",x) : StringFormat(xformat,x);

в отдельную виртуальную функцию, и дать пользователю переопределять её.

Заранее спасибо.

PS. Какие новости по классу и предыдущим багам?
Будут новинки или правки в новом билде?

Если есть новые версии, то скидывайте их тут, не дожидаясь публикации билда.

Причина обращения: