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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2013, 00:03   #1
OlyaV
Новичок
Джуниор
 
Регистрация: 17.11.2013
Сообщений: 1
По умолчанию Масштабирование графика

Добрый вечер!
Подскажите, пожалуйста, как в Delphi сделать так, чтобы выводимый график масштабировался, т.е. чтобы он рисовался одного размера.
Код :
Код:
procedure TForm2.Risovanie();
var q:integer;
begin
j:=0;
q:=6;
  image1.canvas.Pen.Color:=clBlack;
  image1.canvas.moveto(q,0);
  image1.canvas.lineto(q,Image1.Height-q);
  image1.canvas.lineto(Image1.Width,Image1.Height-q);
  image1.canvas.Pen.Color:=clBlue;
    image1.canvas.moveto(q,14);
  image1.canvas.lineto(Image1.Width,14);
  image1.canvas.Pen.Color:=clRed;
  image1.canvas.moveto(q,Image1.Height-q);
for j :=0 to Tmod - 1 do  begin
  image1.canvas.lineto(2*j+q,Image1.Height-Summa[j]-q);
  end;
  end;

есть еще процедура 

procedure TForm2.razmetka(Image1:TImage);
begin
Image1.Picture:=nil;
Image1.Width:=Tmod;
Image1.Height:=Nr+20;
step:=round(Image1.Width/(0.2*Tmod));
Image1.Canvas.Pen.Color:=clGray;
Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
image1.canvas.Brush.color:=clBlack;
end;
График рисуется по точкам, значения которых лежат в массиве Summa[j].
Значение элемента в массиве зависит от вводимого числа - переменная Nr. (Если ввели 100 - значит высота картинки Nr+20) и она вмещается в окно Image (его высота 200). Пример изображение 100. А вот если ввести 450, то график улетает- т.е. он рисуется, но появляется вертикальный скролл, и его можно просмотреть только прокруткой. Пример изображение 450.
как сделать так, чтобы всегда рисовалось окно одного размера - и график не надо было скроллить, а он выводился бы в нормальном виде, вне зависимости от того ввели мы 100 , 500 или 2000.
Примечание: массив Summa[j] - есть массив совпадений, например мы ввели Nr=100 , а массив получился Summa[ 98; 75; 56; 23; 0; 89 и тд.] т.е. в первом случае совпало 98, во втором 75 и тд. Если вводим 450 то массив будет примерно таким Summa[440; 360; 285 и тд.].

Надеюсь на Вашу помощь



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.
Изображения
Тип файла: png 100.png (2.8 Кб, 40 просмотров)
Тип файла: png 450.png (3.7 Кб, 38 просмотров)

Последний раз редактировалось Serge_Bliznykov; 02.12.2013 в 10:45.
OlyaV вне форума Ответить с цитированием
Старый 02.12.2013, 10:00   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

http://programmersforum.ru/showthread.php?t=204221
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Масштабирование графика функции в дельфи yulja-uk Помощь студентам 2 07.06.2012 20:05
TrackBar и Масштабирование графика gamezeldol Помощь студентам 0 03.06.2012 00:30
Сдвиг и масштабирование графика функции Gamst Общие вопросы Delphi 0 03.02.2012 16:54
Масштабирование графика kl0un C# (си шарп) 0 04.11.2011 19:43
масштабирование графика densan Помощь студентам 2 22.01.2009 14:11