![]() |
|
#1
|
||||
|
||||
![]() Код:
procedure TForm1.onPaint(Sender: TObject); Var x_origin, y_origin, x_left, x_right,y_up, y_down, x_step,y_step,n,i:integer; begin x_origin:=Form1.Width div 2; y_origin:=Form1.Height div 2; x_left:=round (Form1.Width/20); x_right:=round (Form1.Width-Form1.Width/20); y_up:=round (Form1.Height/20); y_down :=round (Form1.Height-Form1.Height/20); n:=10; x_step:=round ((x_right-x_left)/n); y_step:=round ((y_down - y_up)/n); with Form1.Canvas do Begin MoveTo (x_left, y_origin); LineTo (x_right, y_origin); MoveTo (x_origin, y_up); LineTo (x_origin, y_down); for i:=1 to n-1 do Begin MoveTo (x_left+x_step*i, y_origin-3); LineTo (x_left+x_step*i, y_origin+3); MoveTo (x_origin-3, y_up+y_step*i); LineTo (x_origin+3, y_up+y_step*i); end; MoveTo (x_right, y_origin); LineTo (x_right-5, y_origin-5); MoveTo (x_right, y_origin); LineTo (x_right-5, y_origin+5); MoveTo (x_origin, y_up); LineTo (x_origin+5, y_up+5); MoveTo (x_origin, y_up); LineTo (x_origin-5, y_up+5); TextOut (x_right-5, y_origin+5, 'x'); TextOut (x_origin-10,y_up+5, 'y'); TextOut (x_origin-10,y_up+200, '0'); end; end; end. дан код который строит координатную плоскость, но на ней штрихи(засечки) в центре не совпадает как это можно подправить подскажите плиз Последний раз редактировалось Mp3, 27.09.2012 в 22:08. |
#2
|
||||
|
||||
![]() Цитата:
Код:
x_origin := x_left + x_step * (n div 2); y_origin := y_up + y_step * (n div 2); И ещё убери отсюда все упоминания о Form1 - они здесь не нужны. Да. И нолик у тебя тоже рисуется на неправильной высоте - это заметно если форму сжимать/растягивать по вертикали (чтобы при изменении размера форма перерисовывалась - на событии OnResize формы сделай Repaint). Нолик лучше рисовать как-то так: Код:
TextOut(x_origin - TextWidth('0') - 3, y_origin - TextHeight('0') - 3, '0'); |
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Mp3 (27.09.2012)
|
#3
|
||||
|
||||
![]() все работает,большое спасибо,
тема закрыта |