Изменение системы координат |
Здравствуйте, гость ( Вход | Регистрация )
Изменение системы координат |
Trisch |
30.5.2012, 16:08
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: 0 |
В виджетах начало координат находится в верхнем левом углу. Можно ли сделать так чтобы она находилась, к примеру, в нижнем правом углу? Если можно то как?
|
|
|
ViGOur |
30.5.2012, 17:11
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Смотри: Система координат - Преобразования
А вообще думаю будет полезным перечитать всё, по поводу Системы координат. |
|
|
Trisch |
31.5.2012, 11:27
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: 0 |
Смотри: Система координат - Преобразования А вообще думаю будет полезным перечитать всё, поп поводу Системы координат. Я смотрел в эту сторону))) Но в этом случае я без понятия как получит координаты мыши в новой системе координат((( |
|
|
wiz29 |
31.5.2012, 12:35
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
Я смотрел в эту сторону))) Но в этом случае я без понятия как получит координаты мыши в новой системе координат((( Нужно просто трансформировать позицию из системы T1(начальная система координат с началом в левом верхнем углу) в систему Т2 (новая система координат) Например: есть экран size == (200, 100) пусть Т1 - нормальная оконная система координат (с центром в левом верхнем углу и осью У направленной вниз) пусть Т2 - новая система координат (с началом в левом нижнем углу и осью У направленной вверх) тогда матрица трансформации для перехода из Т1 в Т2 будет иметь след вид. QTransform transform; transform.translate(0, 100); transform.scale(1.0, -1.0); далее трансформации позиции в новую систему координат: QPoint mousePosT1 = ...; QPoint mousePosT2 = transform.map(mousePos); если надо получить обратно то: QPoint posT2 = ...; QPoint posT1 = transform.inverted().map(posT2); (в случае переноса системы координат с использованием невырожденных аффинных преобразований обратное преобразование всегда существует) Сообщение отредактировал wiz29 - 31.5.2012, 12:37 |
|
|
Trisch |
31.5.2012, 15:01
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: 0 |
А будет ли с преобразованными координатами работать такая функция как geometry()?
|
|
|
ViGOur |
31.5.2012, 15:02
Сообщение
#6
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
да, всё будет работать...
|
|
|
Trisch |
31.5.2012, 15:23
Сообщение
#7
|
Активный участник Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: 0 |
|
|
|
ViGOur |
31.5.2012, 15:31
Сообщение
#8
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
|
|
|
Текстовая версия | Сейчас: 18.4.2024, 5:12 |