Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Рисование графика


Автор: Андракула 27.1.2006, 20:28
Здравствуйте!
Подскажите как нарисовать график в Builder5 по точкам.
Хотя бы с чего начать, куда посмотреть, какие компоненты использовать?
А то что то я даже не представляю с чего начать.

Буду рад любому совету.

Заранее всем спасибо!

Автор: nworm 27.1.2006, 20:36
Использовать надо TChart. Смотри вкладку Additional.

Автор: DemoCode 27.1.2006, 20:39
Можно использовать любой в принципе компонент имеющий Canvas (например TImage, TPaintBox и многие другие).

Определяешь высоту и ширину области вывода, масштабируешь твои координаты. И далее пользуешься Canvas->MoveTo(...) и Canvas->LineTo(...).

Автор: TIGERоX 27.1.2006, 22:53
вод простенький пример, конечно он подойдет не для всех графиков только для непрерывных функций
Код


void DrawGraph(TImage* img,double a,double b,double n,int color,double (*F)(double)){
   double centerY = img->Height/2;
   double centerX = img->Width/2;
   double y;
   int scale  = 100;
   img->Canvas->Pen->Width = 5;
   img->Canvas->Pen->Color = color;
   for(double i = a; i < b; i+=n){
      y = (*F)(i);
      img->Canvas->MoveTo(centerX+i*scale,centerY-y*scale);
      img->Canvas->LineTo(centerX+i*scale,centerY-y*scale);
   }
}



img - картинка в принцепе может быть все что имеет канву
a,b - границы отрезка
n - точность(приращение по х)
F - функция например( double F(int x){return x*x;//возвр X^2})
scale - маштаб

Автор: nworm 29.1.2006, 03:03
Рисование графиков на канве иногда позволяет делать своеобразные и красивые графики.
Но:
1. надо рисовать оси и т.п. самому, не у всех это получается.
2. надо следить, чтобы компонент, содержащий канву, перерисовывался вместе с графиком. Это трудно.

Я бы присоветовал использовать компонент Chart с вкладки additional.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)