Помощь - Поиск - Пользователи - Календарь
Полная версия: Рисуем параболу по таблице значений
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Наська
Значица так - пользователь вводит значения х и а (у=а*х*х), табличка досчитывается и строица диаграммко.
Вот как я ето сделала

Код
procedure TForm1.Button3Click(Sender: TObject);
Var
  j,x,y,a: integer;
  {y,a: real;}
begin
  a := StrToInt(Edit1.Text);
  with Stringgrid1 do
  begin
    for j := 1 to RowCount do
    begin
      x := StrToInt(cells[1,j]);
      y := sqr(x)*a;
      Cells[0, j] := IntToStr(y);
    end;
  end;
end;

procedure TForm1.Button4Click(Sender: TObject);
var
  i: integer;
begin
  Chart1.Visible := true;
  for i := 1 to StringGrid1.RowCount do
  begin
    Chart1.Series[0].Add(StrToFloat(stringGrid1.Cells[0,i]),'',clred)
  end;
end;


Считает, рисует, но ругается. Шо делать???? dry.gif
volvo
Цитата
Шо делать????
Как минимум - дать больше информации, например - как именно ругается? И когда это происходит? Потому что приведенный тобой кусок программы отрабатывает совершенно нормально (если в Grid-е есть одна фиксированная строка и все элементы 1-го столбца заполнены, а Chart уже содержит хотя бы одну серию)...

Добавлено через 1 мин.
Хотя нет... Не отрабатывает... Надо менять: циклы до RowCount - 1
Наська
Обязательно учту на счёт - больше инфы..в следущий раз

А вот за RowCount-1 бАльшое спасибо!
Бывает приклинит blum.gif Затупила.
Спасиб!!!!!
Наська
Но по сути-то строит тока точки из таблицы и рисует их, а как реально заставить рисовать всю параболу????????? dry.gif
volvo
А ты какую серию добавила в Chart? При добавлении Lines как раз все нормально отображается:

Нажмите для просмотра прикрепленного файла
Наська
Line: Series1
эммм как сделать её плавной?
Наська
Ну с плавностью понятно- побольше значений и дробные.

А как насчёт вот етого -
Где в диаграмме установить параметр, что бы отрицательная часть оси х тоже отображалась?
volvo
Например, запусти вот этот код:


Chart1.Visible := true;
Chart1.BottomAxis.Minimum := - Chart1.BottomAxis.Maximum;
for i := 1 to StringGrid1.RowCount do
begin
Chart1.Series[0].AddXY(i, StrToFloat(stringGrid1.Cells[0,i-1]),'',clred);
Chart1.Series[0].AddXY(-i, StrToFloat(stringGrid1.Cells[0,i-1]),'',clred);
end;

Наська
Спасиб! разобралась.
Шаг товарищи чаще и всё бу плавно.

На контрольной попался косинус с интервалом и шагом, которые задает пользователь.
Вери гуд. может кому нада. скину если ч0. cool.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.