Некорректная отрисовка прямоугольника и линии |
Здравствуйте, гость ( Вход | Регистрация )
Некорректная отрисовка прямоугольника и линии |
anater |
13.10.2010, 21:08
Сообщение
#1
|
Студент Группа: Участник Сообщений: 21 Регистрация: 25.12.2009 Пользователь №: 1335 Спасибо сказали: 0 раз(а) Репутация: 0 |
Доброго времени суток.
Совершенно идиотская ситуация. Определяю координаты элементов на QFrame
и хочу их отрисовать.
Так прямоугольник рисуется идиально аккуратно по краям QFrame. ЛИНИЯ!!!! по тем же координатам рисуется соответственно по диагонали но доходит примерно до середины прямоугольника. До противоположного края просто не дотягивается(!). Уже всю голову сломал... Помогите решить этот глюк.
Причина редактирования: пользуйтесь тагом code вместо codebox
|
|
|
Алексей1153 |
13.10.2010, 21:33
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
а вот так должна быть вся главная диагональ. Получается ?
Сообщение отредактировал Алексей1153 - 13.10.2010, 21:37 |
|
|
anater |
13.10.2010, 21:39
Сообщение
#3
|
Студент Группа: Участник Сообщений: 21 Регистрация: 25.12.2009 Пользователь №: 1335 Спасибо сказали: 0 раз(а) Репутация: 0 |
Да получилось!
А почему именно так. Дело в том что мне очень нужно работать непосредственно с координатами. Непростой рисуночек формируется. Да и потом тоже нужно будет юзать по координатам. |
|
|
Алексей1153 |
13.10.2010, 21:42
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
любой рисунок можно разбить на подрисунки. А в данном случае я использовал уже вычисленные координаты (углы прямоугольника) для дальнейших расчётов (линия).
зря только QLineF - зачем тебе float при отрисовке графики ? Скорось так себе будет |
|
|
anater |
13.10.2010, 21:44
Сообщение
#5
|
Студент Группа: Участник Сообщений: 21 Регистрация: 25.12.2009 Пользователь №: 1335 Спасибо сказали: 0 раз(а) Репутация: 0 |
любой рисунок можно разбить на подрисунки. А в данном случае я использовал уже вычисленные координаты (углы прямоугольника) для дальнейших расчётов (линия). Да что ты сделал я понял. Мучает вопрос почему не отрисовывется по человечески на основе одних и тех же координат? есть предположения? И есть ли способ корректно отрисовывать на основе координат? |
|
|
Алексей1153 |
13.10.2010, 21:51
Сообщение
#6
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Мучает вопрос почему не отрисовывется по человечески на основе одних и тех же координат? есть предположения? если твой код отформатировать по-человечьи, то становится очевидно, что координаты нифига не одни и те же
Сообщение отредактировал Алексей1153 - 13.10.2010, 21:52 |
|
|
anater |
13.10.2010, 21:57
Сообщение
#7
|
Студент Группа: Участник Сообщений: 21 Регистрация: 25.12.2009 Пользователь №: 1335 Спасибо сказали: 0 раз(а) Репутация: 0 |
Запустил у себя в софтине:
вывод this->pb_graf->height() = 162 rect.bottomRight().y() = 230 по ширине идентично а вот по высоте!!! ведь линия и прямоугольник строились на основании this->pb_graf->height() перестаю понимать. Просто перепробывал уже все варианты и начал кидаться в крайности... отсюда кривизна кода... Сообщение отредактировал igor_bogomolov - 14.10.2010, 7:32
Причина редактирования: не цитируй целыми сообщениями
|
|
|
Алексей1153 |
13.10.2010, 22:02
Сообщение
#8
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
anater, обрати внимание, что для линии в конструкторе указываются координаты двух точек, а для прямоугольника - точка и размеры
QLineF ( qreal x1, qreal y1, qreal x2, qreal y2 ) QRect ( int x, int y, int width, int height ) Сообщение отредактировал Алексей1153 - 13.10.2010, 22:08 |
|
|
anater |
13.10.2010, 22:06
Сообщение
#9
|
Студент Группа: Участник Сообщений: 21 Регистрация: 25.12.2009 Пользователь №: 1335 Спасибо сказали: 0 раз(а) Репутация: 0 |
anater, обрати внимание, что для нинии в конструкторе указываются координаты двух точек, а для прямоугольника - точка и размеры QLineF ( qreal x1, qreal y1, qreal x2, qreal y2 ) QRect ( int x, int y, int width, int height ) Да действительно. Видимо придется смириться. В принципе проблема решена. Но можно еще позанудствую? Ведь по идее мой изначальный способ должен был работать? И для линии и для прямоугольника это должно было бы работать? |
|
|
Алексей1153 |
13.10.2010, 22:10
Сообщение
#10
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
кстати, если ты в справку заглядывал, то там есть конструкторы
QLineF ( const QPointF & p1, const QPointF & p2 ) QRect ( const QPoint & topLeft, const QPoint & bottomRight ) - как тебе и хотелось Ведь по идее мой изначальный способ должен был работать? И для линии и для прямоугольника это должно было бы работать? что за способ, и что "это" ? Непонимяу Сообщение отредактировал Алексей1153 - 13.10.2010, 22:10 |
|
|
Текстовая версия | Сейчас: 28.12.2024, 8:06 |