Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рисование графика, как нарисовать график в Builder5 
:(
    Опции темы
Андракула
Дата 27.1.2006, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 29.9.2005

Репутация: нет
Всего: нет



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

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

Заранее всем спасибо!
PM MAIL   Вверх
nworm
Дата 27.1.2006, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 502
Регистрация: 22.10.2005

Репутация: 1
Всего: 8



Использовать надо TChart. Смотри вкладку Additional.
PM MAIL WWW   Вверх
DemoCode
Дата 27.1.2006, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 1
Всего: 41



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

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


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
TIGERоX
Дата 27.1.2006, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


начинающий...
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 7.9.2005

Репутация: 1
Всего: 1



вод простенький пример, конечно он подойдет не для всех графиков только для непрерывных функций
Код


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 - маштаб
PM MAIL   Вверх
nworm
Дата 29.1.2006, 03:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 502
Регистрация: 22.10.2005

Репутация: 1
Всего: 8



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

Я бы присоветовал использовать компонент Chart с вкладки additional.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0900 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.