Нахождение точки пересечения QGraphicsLineItem |
Здравствуйте, гость ( Вход | Регистрация )
Нахождение точки пересечения QGraphicsLineItem |
RazrFalcon |
30.3.2011, 20:26
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Гугл говорит о том, что можно узнать пересекаются они вообще или нет, а вот как получить именно координату пересечения не понятно.
Я говорю не о простой математике, а уже готовой функции. |
|
|
RazrFalcon |
30.3.2011, 23:03
Сообщение
#2
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Да, не знал об этом, спасибо.
Но я не могу с этим разобраться. возвращает 1QPointF* intersectionPoint = new QPointF(-50, -50); тоже 1 QPointF* intersectionPoint = new QPointF(10, 10); тоже 1 Я не пойму на что этот intersectionPoint вообще влияет. Если линии параллельны - то выдает 0. Если вообще в разных плоскостях то 2. Но это и из хелпа понятно. А мне нужна точка пересечения! Сообщение отредактировал RazrFalcon - 30.3.2011, 23:05 |
|
|
vankleef |
30.3.2011, 23:43
Сообщение
#3
|
Студент Группа: Участник Сообщений: 74 Регистрация: 21.10.2010 Пользователь №: 2134 Спасибо сказали: 9 раз(а) Репутация: 1 |
А мне нужна точка пересечения! Функция возвращает enum QLineF::IntersectType Тоесть все правильно: параллельны-0, скрещиваются прямые-2.. Насколько я понял, координата пишется во второй аргумент функции: Цитата IntersectType QLineF::intersect ( const QLineF & line, QPointF * intersectionPoint ) const Returns a value indicating whether or not this line intersects with the given line. The actual intersection point is extracted to intersectionPoint (if the pointer is valid). If the lines are parallel, the intersection point is undefined. Тоесть
|
|
|
RazrFalcon |
30.3.2011, 23:47
Сообщение
#4
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Все работает!
QLineF* line1 = new QLineF(0, 0, 30, 30); QLineF line2(0, 30, 30, 0); QPointF intersectionPoint; line1->intersect(line2, &intersectionPoint); qDebug()<<intersectionPoint.x()<<intersectionPoint.y(); vankleef, тоже работает ваш вариант, но new QPointF(50, 50); не на что не влияет. Почему то. |
|
|
vankleef |
31.3.2011, 0:29
Сообщение
#5
|
Студент Группа: Участник Сообщений: 74 Регистрация: 21.10.2010 Пользователь №: 2134 Спасибо сказали: 9 раз(а) Репутация: 1 |
|
|
|
Текстовая версия | Сейчас: 2.12.2024, 6:43 |