Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2011, 16:55   #1
Fascination_Fox
Новичок
Джуниор
 
Регистрация: 27.09.2011
Сообщений: 4
По умолчанию Программа для созданию графика функций по средствам paintbox

пожалуйста напишите программу изображаемую график функций
Y=1/x

Завтра последний день, когда могу сдать эту программу и получить зачет, а без него "привет, комиссия"
P.S. Я в delphi не в зуб ногой, кхм.. ну вы понимаете...
Буду очень благодарна!

Последний раз редактировалось Fascination_Fox; 27.09.2011 в 17:01.
Fascination_Fox вне форума Ответить с цитированием
Старый 27.09.2011, 16:59   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

1. Построим таблицу значений
2. Строим координатные оси
3. Привязываем координаты осей к координатам ПаинтБокса (а они там свои)
4. Выводим график из таблицы значений.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 27.09.2011, 17:05   #3
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

В похожих темах есть с компонентом Chart: http://programmersforum.ru/showthread.php?t=8263#5

Просто замени там (x*x)+(x*x*x) на 1/x — может, зачтут.

Да, ещё, конечно, точку (0; 0) надо отдельно обработать.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 27.09.2011, 18:45   #4
Fascination_Fox
Новичок
Джуниор
 
Регистрация: 27.09.2011
Сообщений: 4
По умолчанию

Sasha_Smirnov, спасибо, но это совсем не то.
Ребята, помогите пожалуйста!
У нас не осталось альтруистов?
Fascination_Fox вне форума Ответить с цитированием
Старый 27.09.2011, 19:09   #5
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Fascination_Fox Посмотреть сообщение
У нас не осталось альтруистов?
Альтруистов было много, но все с голоду перемёрли .
Вам во-фриланс батенька.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 27.09.2011, 19:21   #6
Fascination_Fox
Новичок
Джуниор
 
Регистрация: 27.09.2011
Сообщений: 4
По умолчанию

Вот программа одногруппника у него для y=x².
Можете ли вы ее переделать под мой пример?

Код:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,i,y:integer;
begin
PaintBox1.Canvas.Brush.Color:=clBtnFace;
PaintBox1.Canvas.FillRect(bounds(0,0,500,500));
PaintBox1.Canvas.TextOut(490,385,'X');
PaintBox1.Canvas.TextOut(255,65,'Y');


PaintBox1.Canvas.Brush.Color:=clBlack;
PaintBox1.Canvas.Pen.Width:=strtoint(edit1.text);
PaintBox1.Canvas.MoveTo(0,400);
PaintBox1.Canvas.LineTo(500,400);
paintbox1.Canvas.MoveTo(250,500);
PaintBox1.Canvas.LineTo(250,50);
a:=230;
b:=0;
PaintBox1.Canvas.MoveTo(a,b);
for i:=-19 to 20 do
  begin
    y:=sqr(i);
    a:=a+1;
    PaintBox1.canvas.LineTo(a,400-y);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var a,b,i,y:integer;
begin
PaintBox1.Canvas.Brush.Color:=clBtnFace;
PaintBox1.Canvas.FillRect(bounds(0,0,500,500));
PaintBox1.Canvas.TextOut(490,385,'X');
PaintBox1.Canvas.TextOut(255,65,'Y');


PaintBox1.Canvas.Brush.Color:=clBlack;
PaintBox1.Canvas.Pen.Width:=strtoint(edit1.text);
PaintBox1.Canvas.MoveTo(0,400);
PaintBox1.Canvas.LineTo(500,400);
paintbox1.Canvas.MoveTo(250,500);
PaintBox1.Canvas.LineTo(250,50);

a:=230;
b:=0;
PaintBox1.Canvas.MoveTo(a,b);
for i:=-19 to 20 do
  begin
    y:=sqr(i);
    a:=a+1;
    PaintBox1.canvas.Pixels[a,400-y]:=clBlack;
  end;

end;

end.

Последний раз редактировалось Fascination_Fox; 27.09.2011 в 19:37.
Fascination_Fox вне форума Ответить с цитированием
Старый 27.09.2011, 19:49   #7
Fascination_Fox
Новичок
Джуниор
 
Регистрация: 27.09.2011
Сообщений: 4
По умолчанию

Буду крайне признательна за помощь!
Fascination_Fox вне форума Ответить с цитированием
Старый 28.09.2011, 12:04   #8
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Я твоему одногруппнику ручонки-то повыдергал бы ))
Что за каша из цифр ? а если не знать размеров пейнтбокса ?? всё, график поплыл ?
Вот Вам норм решение, но только для первой кнопки(для второй - поменять одну строчку, приведенный тобой код тоже отличается только на 1 строчку ):
Код:
procedure TForm1.Button1Click(Sender: TObject);
const ofs = 30;
var i,y, w,h, hh, hw:integer;
begin
PaintBox1.Canvas.Brush.Color:=clBtnFace;
PaintBox1.Canvas.FillRect(PaintBox1.BoundsRect);
PaintBox1.Canvas.Pen.Width:=strtoint(edit1.text);
w := PaintBox1.Clientwidth;
h := PaintBox1.ClientHeight;
hh := h div 2;
hw := w div 2 ;
PaintBox1.Canvas.TextOut(w - ofs, hh + ofs,'X');
PaintBox1.Canvas.TextOut(hw - ofs, ofs,'Y');

PaintBox1.Canvas.MoveTo(0, hh);
PaintBox1.Canvas.LineTo(w, hh);
paintbox1.Canvas.MoveTo(hw, 0);
PaintBox1.Canvas.LineTo(hw, h);

PaintBox1.Canvas.MoveTo(-w, hh);
for i := -hw to hw  do
  begin
    if i = 0 then
      Continue;
    y:= (w * 5) div (-i); // 5 - масштаб , минус - ибо ось У в дельфи вниз!
    PaintBox1.canvas.LineTo(i+hw, y+hh);
  end;
end;
Кстати ) обаятельная Вы наша, Вы уж определитесь какого Вы полу ) женского или того, который подлежит комиссии :D

Последний раз редактировалось phomm; 28.09.2011 в 12:27.
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построение графика функций. SPQR Помощь студентам 9 28.10.2010 20:50
Построение графика функций (Delphi) КатюФа Помощь студентам 0 14.05.2010 19:27
ADllExports - программа для получения экспортируемых функций из .dll Terran Софт 4 18.05.2009 13:48
3D_Max 8 и программа по созданию сайтов. Yar Помощь студентам 3 17.01.2009 00:34