Цитата:
Сообщение от 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');