Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.10.2011, 17:23
elluminate elluminate вне форума
Прохожий
 
Регистрация: 09.11.2010
Сообщения: 7
Репутация: 10
По умолчанию Построение графика в компоненте TImage. Delphi

Строю график по пикселям, читая точки из файла. Изменяю координаты для того, чтобы фокус всегда был на графике. При построении верхняя часть кусочной функции прижимается к вершине экрана и изменение границ влияет на другие части, а на эту нет.

Код:
\\функция, график которой строится

function f(x:Real):Real;
begin
if x<(-5.6) then
 result:=x;                               
if (x>=5.6) and (x<0) then
 result:=-5.6;
if (x>=0) then
 result:=7.9;
end;


\\ запись координат в файл. xb - начало отрезка, xe - конец, xgs - шаг

procedure WriteInFile;
begin
p1;
AssignFile(fi,'c:\graf.dat');
Rewrite(fi);
xg1:=xb;
xgs:=abs(xb-xe)*0.001;
while xg1<=xe  do  
 begin
 yg1:=f(xg1);
 Writeln(fi,xg1,' ',yg1);
 xg1:=xg1+xgs;
 end;
CloseFile(fi);
end;

\\построение графика
xg1, yg1 это координаты из процедуры записи
min и max - минимальное и максимальное значение функции

procedure Graf;
begin
p1;
Reset(fi);
 while not Eof(fi) do
   begin
   ReadLn(fi,xg1,yg1);
   cx:=(xg1-xb)/(xe-xb)*Form1.Image1.width;
   cy:=Form1.Image1.Height-50-((yg1-min)/(max-min)*(Form1.Image1.Height-50)) ;
   Form1.Image1.Canvas.Pixels[round(cx),round(cy)]:=1;
   end;
CloseFile(fi);
end;
Ответить с цитированием
  #2  
Старый 19.10.2011, 21:42
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Хватило посмотреть начало кода:
Код:
  if (x>=5.6) and (x<0) then
    result:=-5.6;
смысловой бред. Как x может одновременно быть положительным и отрицательным значением?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 20.10.2011, 12:42
elluminate elluminate вне форума
Прохожий
 
Регистрация: 09.11.2010
Сообщения: 7
Репутация: 10
По умолчанию

конечно там -5,6.опечатка)спасибо
только проблему это не снимает
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:45.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025