Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите построить график функции 
:(
    Опции темы
Fifa
  Дата 12.12.2004, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Люди добрые, помогите ,пожалуйста, программистке с маленьким мозгом написать прогу, которая бы рисовала график функции 3*x(SQR)+3*x+5. Заранее премного благодарна!

PM MAIL   Вверх
Fedor
Дата 12.12.2004, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


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

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



Цитата(Fifa @ 12.12.2004, 13:11)
программистке с маленьким мозгом

блондинка?

Цитата(Fifa @ 12.12.2004, 13:11)
3*x(SQR)+3*x+5

Может быть, имелось в виду 3*SQR(x)+3*x+5

Строишь по точкам с каким-то конкретным шагом. Что именно непонятно?


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
Ddddddelphi
Дата 12.12.2004, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Fifa, загляни сюда
PM MAIL   Вверх
Pakshin A. S.
Дата 12.12.2004, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



А где программистка с маленьким мозгом хочет нарисовать график?
PM   Вверх
Vladimir13
Дата 13.12.2004, 02:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



на Image по линиям рисуешь. А лучше найди в Архангельском.
--------------------
Лучший метод - метод тыкаобращаться по адресу: mvdr
PM MAIL ICQ   Вверх
sergejzr
Дата 13.12.2004, 02:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Бери шаг в пиксель, начинай с нуля.

Ну, если совсем "с маленьким мозгом", то тогда возьми картинку с низу и перетащи на форму!

Но дело конечно не в величине мозга, а в количестве извилин..

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  mozg.gif


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Ddddddelphi
Дата 13.12.2004, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

unit grfunc_;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
 TForm1 = class(TForm)
   procedure FormPaint(Sender: TObject);
   procedure FormResize(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

// функция, график которой надо построить
Function f(x:real):real;
begin
   f:=3*sqr(x)+3*x+5;
end;

//процедура постройки графики
procedure GrOfFunc;
var
x1,x2:real;    // границы изменения аргумента функции
y1,y2:real;    // границы изменения значения функции
x:real;        // аргумент функции
y:real;        // значение функции в точке x
dx:real;       // приращение аргумента
l,b:integer;   // левый нижний угол области вывода графика
w,h:integer;   // ширина и высота области вывода графика
mx,my:real;    // масштаб по осям X и Y
x0,y0:integer; // точка - начало координат

begin
// определяем область вывода графики
l:=10;                     // X - координата левого верхнего угла
b:=Form1.ClientHeight-20;  // Y - координата левого нижнего угла
h:=Form1.ClientHeight-40;  // высота
w:=Form1.Width-40;         // ширина

x1:=0;     // нижняя граница диапазона аргумента
x2:=25;    // верхняя
dx:=0.01;  // шаг аргумента

// найдём максимальное и минимальное значения
// функции на отрезке  [x1,x2]
y1:=f(x1); // минимум
y2:=f(x1); // максимум
x:=x1;
repeat
  y := f(x);
  if y < y1 then y1:=y;
  if y > y2 then y2:=y;
  x:=x+dx;
until (x>=x2);

// задаём масштаб
my:=h/abs(y2-y1);  // по оси Y
mx:=w/abs(x2-x1);  // X

// оси
x0:=l;
y0:=b-Abs(Round(y1*my));

with form1.Canvas do
begin
  // рисуем оси x и y
  MoveTo(l,b);LineTo(l,b-h);
  MoveTo(x0,y0);LineTo(x0+w,y0);
  TextOut(l+5,b-h,FloatToStrF(y2,ffGeneral,6,3));
  TextOut(l+5,b,FloatToStrF(y1,ffGeneral,6,3));
  //строим график
  x:=x1;
  repeat
    y:=f(x);
    Pixels[x0+Round(x*mx),y0-Round(y*my)]:=clRed;
    x:=x+dx;
  until (x>=x2);
end;
end;


procedure TForm1.FormPaint(Sender: TObject);
begin
 GrOfFunc;
end;

// при изменнение размера окна программы
procedure TForm1.FormResize(Sender: TObject);
begin
 //очистить форму
 form1.Canvas.FillRect(Rect(0,0,ClientWidth,ClientHeight));
 // заново строим график
 GrOfFunc;
end;

end.

PM MAIL   Вверх
Bes
Дата 14.12.2004, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Простите, а что, компонент TChart нынче не в моде?.... :-)
Рисуй что хочешь, как хочешь да еще и наворотов там встроенных море типа масштабирования и пр...
PM MAIL   Вверх
_hunter
Дата 14.12.2004, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



а он а моде никогда и небыл smile
ибо это недостойно истинного программиста юзать левые компоненты на пустяковых задачах smile


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Bes
Дата 14.12.2004, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



:-)
Левые?....
Каждый раз изобретать велосипед?....
Нечем заняться?....

P.S. Кстати, если рисовать прямо на канве, то график будет затираться при наезжании на другие окна, свертывании и пр. т.е. его надо будет перерисовывать... но конечно можно не мучаться с TChart-ом, а запоминать все параметры графика и функции и выполнять процедуру отрисовки при каждом событии On..... флрмы. Это проще и интереснее. :-)

Это сообщение отредактировал(а) Bes - 14.12.2004, 14:57
PM MAIL   Вверх
SoWa
Дата 14.12.2004, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

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



Ага, TChart- рульная вешь! Скоро на www.faraonsowa8.narod.ru выложу прогу для построенияграфиков любой функции... родолжение следует smile


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
_hunter
Дата 15.12.2004, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



скажем так... в детстве, когда велосипеды изобретать нужно ( для практики ), все ( наверное ) писали построители графиков ( я -- еще на паскале ) и позже переводили в классы. почему бы их не юзать?
а преимуществ у TChart' a -- ноль ( даже тормознутее )
а прилепить к классу пару/тройку обработчиков -- не проблема


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Bes
Дата 15.12.2004, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



2hunter:
Согласен, я тоже когда еще в BP писал - тоже делал построители графиков, но когда я увидел TChart - навсегда заыл об этом. Не знаю, уважаемый, о чем вы говорите, может у вас там свой Chart, но я не понимаю что значит преимуществ 0 и тормознутее... ?
Я его пользую давно, строю графики далеко не х=у*у разных типов и пр. и никаких проблем.
PM MAIL   Вверх
Ddddddelphi
Дата 15.12.2004, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



[/b]Bes[b], а ты не мог бы скинуть исходник, любой проги, подучиться чтобы

Это сообщение отредактировал(а) Ddddddelphi - 15.12.2004, 14:45
PM MAIL   Вверх
Bes
Дата 15.12.2004, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



2Ddddddelphi: Это проверка на вшивость что ли? :-)
В чарте или на канве или в TB турбо паскаля давно накомпе не имею - так что если надо в нем топридется подождать... ну и есть плохая привычка не хранить исходники так что писать буду заново. Как писать?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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