Показать сообщение отдельно
  #2  
Старый 27.09.2012, 23:49
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Mp3
дан код который строит координатную плоскость, но на ней штрихи(засечки) в центре не совпадает как это можно подправить подскажите плиз
Это потому что те формулы справедливы только для дробной арифметики, но канва использует целочисленную арифметику, поэтому и приходится использовать округления до целого (round), а округления вносят ошибку. Чтобы штрихи совпадали нужно делать согласование координат. Здесь это можно сделать несколькими способами. Например вычислять x_origin и y_origin таким образом:
Код:
  x_origin := x_left + x_step * (n div 2);
  y_origin := y_up + y_step * (n div 2);
Естественно это нужно делать не в начале, а уже после того как посчитаны значения переменных x_left, x_step, y_up и y_step, т.е. как раз перед with.

И ещё убери отсюда все упоминания о Form1 - они здесь не нужны.

Да. И нолик у тебя тоже рисуется на неправильной высоте - это заметно если форму сжимать/растягивать по вертикали (чтобы при изменении размера форма перерисовывалась - на событии OnResize формы сделай Repaint). Нолик лучше рисовать как-то так:
Код:
    TextOut(x_origin - TextWidth('0') - 3, y_origin - TextHeight('0') - 3, '0');
Ответить с цитированием