1 / 1 / 1
Регистрация: 04.10.2012
Сообщений: 45
|
||||||||||||||||
1 | ||||||||||||||||
Canvas. Отрисовка заданного количества вертикальных линий с определенным шагом03.11.2013, 22:32. Показов 3515. Ответов 14
Метки нет (Все метки)
Здравствуйте. Помогите разобраться с проблемой. Есть таблица StringGrid1. В ней будет определенное количество строк. Каждый раз разное. К примеру 10 записей. Необходимо отрисовать графически промежутки между этим количеством строк. Если записей 10, то соответственно промежутков между ними на 1 меньше (9 шт).
Я сначала получаю количество участков с таблицы:
0
|
03.11.2013, 22:32 | |
Ответы с готовыми решениями:
14
Прямоугольная решетка из n горизонтальных и m вертикальных линий Прорисовка вертикальных линий на видимой части графика Можно ли создать гистограмму без вертикальных линий? Изобразить на экране компьютера решётку, состоящую из n вертикальных и m горизонтальных линий |
1 / 1 / 1
Регистрация: 04.10.2012
Сообщений: 45
|
|
04.11.2013, 11:43 [ТС] | 2 |
Вот картинка для наглядности
0
|
120 / 110 / 19
Регистрация: 04.11.2013
Сообщений: 471
|
||||||
04.11.2013, 13:07 | 3 | |||||
А в чём проблема-то? Отрисовать вертикальные линии с определённым шагом? Так пройдитесь циклом, к примеру так:
0
|
1 / 1 / 1
Регистрация: 04.10.2012
Сообщений: 45
|
|
04.11.2013, 23:14 [ТС] | 4 |
Вот такая задача и есть. Спасибо! Но есть проблема при умножении i*l:
i:integer; l:extended; Если при умножении округлить trunc(l), то сбивается сам промежуток.
0
|
angstrom
|
|
04.11.2013, 23:17 | 5 |
|
1 / 1 / 1
Регистрация: 04.10.2012
Сообщений: 45
|
|
04.11.2013, 23:41 [ТС] | 6 |
Благодарю. Округляя с помощью Round, Ceil, Floor - я теряю (или же добавляю) доли этих самых пикселей. вроде как 0,5 пикселей немного, но если участков 30, то 0,5*30=15. Итого накапливается потеря 15 пикселей.
0
|
120 / 110 / 19
Регистрация: 04.11.2013
Сообщений: 471
|
|
04.11.2013, 23:44 | 7 |
Ничего там не накапливается, поверьте. Просто длина некоторых промежутков будет +/-1.
0
|
1 / 1 / 1
Регистрация: 04.10.2012
Сообщений: 45
|
||||||
05.11.2013, 00:52 [ТС] | 8 | |||||
Запутался я наверное. Все равно не выходит путное.
0
|
angstrom
|
||||||
05.11.2013, 00:58 | 9 | |||||
Участков 13, но линий 14.
|
1 / 1 / 1
Регистрация: 04.10.2012
Сообщений: 45
|
|
05.11.2013, 01:17 [ТС] | 10 |
Да, пробовал и такое. Помогает при 14 линиях. Но при 22 линиях и for i := 0 to k do выходит:
0
|
angstrom
|
||||||
05.11.2013, 01:34 | 11 | |||||
А так, рисование на канве формы (без TImage)
|
1 / 1 / 1
Регистрация: 04.10.2012
Сообщений: 45
|
|
05.11.2013, 02:07 [ТС] | 12 |
А так отлично, только в конце еле заметный пиксель или два пустоты. И отчего же на TImage не получается нормально, а на форме почти что отлично?
0
|
angstrom
|
|||||||||||
05.11.2013, 02:12 | 13 | ||||||||||
И на TImage будет так же, мне лень было на форму кидать.
Пустота из-за того, что
|
1 / 1 / 1
Регистрация: 04.10.2012
Сообщений: 45
|
|
05.11.2013, 02:29 [ТС] | 14 |
Благодарю) Насчет 180 на 181 - не совсем понял, ведь это будет координата по игреку, то есть вертикали. А пустой пиксель вылазит по горизонтали. Утром уже буду разбираться дальше)
0
|
angstrom
|
||||||
05.11.2013, 02:32 | 15 | |||||
Когда указывается 180, реально рисуется до 179. Не хочешь по Y, исправь по X
|
05.11.2013, 02:32 | |
05.11.2013, 02:32 | |
Помогаю со студенческими работами здесь
15
Отображение вертикальных линий, соединяющих фигурные скобки в редакторе кода Нарисовать 10 разноцветных вертикальных линий отстоящих друг от друга на равном расстоянии Нарисовать 10 разноцветных вертикальных линий отстоящих друг от друга на равном расстоянии Написать программу рисования в текстовом режиме вертикальных и горизонтальных линий по нажатию соответствующих клавиш Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |