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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2012, 01:17   #1
Gamst
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 58
Восклицание Деления на осях координатной плоскости

Привет!
Пишу программу, которая рисует график. Примером взял вот это: http://www.cyberforum.ru/delphi-begi...ead122904.html
Получается в осях х и у нет никакого деления, как сделать что бы были деления?
Gamst вне форума Ответить с цитированием
Старый 14.02.2012, 01:18   #2
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

canvas.TextOut(x, y, str) исправит положение.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 27.02.2012, 14:15   #3
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Цитата:
Сообщение от Rin Посмотреть сообщение
canvas.TextOut(x, y, str) исправит положение.
на форме должен быть PaintBox1
Код:
// процедура перерисовки стрелки Cn:Tcanvas; - холст для рисования (Form1.canvas; Form1.Image1.Canvas)
// x1,y1 начало стрелки
// X2,y2 - конец стрелки
// fhs - длина стрелочки по умолчанию 25
// a - угол стрелки по умолчанию 30
Procedure DrawStrelka(Cn:Tcanvas;x1,y1,x2,y2:integer;fhs:integer=25;a:integer=30);
  var ugol:real;
begin
     Cn.MoveTo(x1,y1);
     Cn.LineTo(x2,y2);
     if (abs(x2-x1)+abs(y1-y2))>0 then begin
     if (x2-x1)<>0 then
     ugol:=arctan(((y2-y1)/((x2-x1))))
     else ugol:=pi/2;
     if x2-x1>0 then ugol:=ugol+pi;
     if (y2-y1>0) and ((x2-x1)=0) then ugol:=-pi/2;
     Cn.LineTo(round((x2+(cos(ugol-30*pi/180)*fhs))),round(y2+(sin(ugol-30*pi/180)*fhs)));
     Cn.MoveTo(x2,y2);
     Cn.LineTo(round((x2+(cos(ugol+30*pi/180)*fhs))),round(y2+(sin(ugol+30*pi/180)*fhs)));
  end;
end;
// фаункция перерисовки осей каординат
procedure DrawPole;
var x,y:integer;
begin
   cx:=form1.PaintBox1.Width div 2;
   cy:=form1.PaintBox1.Height div 2;

// рисуем  ось ординат  (Y)
   DrawStrelka(form1.PaintBox1.CANVAS,cx,form1.PaintBox1.Height-30,cx,10,10);
// рисуем  ось абсцисс (Х)
   DrawStrelka(form1.PaintBox1.CANVAS,0,cy,form1.PaintBox1.Width-30,cy,10);
   // деления между каординат
   form1.PaintBox1.CANVAS.TextOut(cx+5,cy+5,'0');
   for x:=0 to ((form1.PaintBox1.Width-30) div 10)-3 do begin
     form1.PaintBox1.CANVAS.MoveTo(x*10,cy-10);
     form1.PaintBox1.CANVAS.lineTo(x*10,cy+10);
     if x mod 5 = 0 then begin
       form1.PaintBox1.CANVAS.TextOut(x*10+2,cy-20,inttostr(x*10-cx));
       form1.PaintBox1.CANVAS.MoveTo(x*10,cy-15);
       form1.PaintBox1.CANVAS.lineTo(x*10,cy+15);

     end;
     // подписываем точки по Х

   end;
   for y:=0 to ((form1.PaintBox1.Height-30) div 10)-3 do begin
     form1.PaintBox1.CANVAS.MoveTo(cx-10,30+10*y);
     form1.PaintBox1.CANVAS.lineTo(cx+10,30+10*y);
    if y mod 5 = 0 then begin
     form1.PaintBox1.CANVAS.TextOut(cx+2,y*10,inttostr(cy-y*10));
     form1.PaintBox1.CANVAS.MoveTo(cx-15,30+10*y);
     form1.PaintBox1.CANVAS.lineTo(cx+15,30+10*y);
     end;

     // подписываем точки по Y
   end;

end;
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм кластеризации координатной плоскости(тут интересно) 3BEPOBOY Помощь студентам 1 05.04.2011 22:14
Нахождение точки на медиане треугольника в координатной плоскости. Вадим Буренков Свободное общение 4 22.06.2010 19:18
столбиковые диаграммы в одной координатной плоскости NeG_07 Помощь студентам 0 12.05.2010 16:16
Найти точки на координатной плоскости vovey Помощь студентам 6 07.04.2010 13:35
на координатной плоскости, координаты в ручную Proskurin Помощь студентам 5 18.04.2008 13:31