Russian Qt Forum
Ноябрь 23, 2024, 15:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Как расчитать нормаль к кривой QPainterPath в заданой точке?  (Прочитано 2128 раз)
Hrundel
Гость
« : Апрель 01, 2014, 21:18 »

Всем привет,

программа рисует кривые Бизье и аппроксимирует нативным методом QPointF QPainterPath::pointAtPercent ( qreal t ) const;
Вопрос - есть ли возможность расчитать нормаль заданой длины к любой точке кривой QPainterPath? В обе стороны.
На выходе нужны только координаты нормали в верхней точке. На кривой они и так известны.

Спасибо.
« Последнее редактирование: Апрель 02, 2014, 11:07 от Hrundel » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Апрель 02, 2014, 09:37 »

Никогда не работал QPainterPath, но есть градиентный метод
Код
C++ (Qt)
QPointF p0 = path.pointAtPercent(t);
QPointF p1 = path.pointAtPercent(t + dt);
 
Тогда разница p1-p0 = касательная в точке, повернутая на PI/2 = нормаль. Более гладкий рез-т дает "вторая разница"  F(t + dt) - F(t - dt). Шаг dt должен быть достаточно мал но не с потерей точности (это типовая проблема).
Записан
Hrundel
Гость
« Ответ #2 : Апрель 02, 2014, 11:06 »

Спасибо Игорь,

тоже вчера ночью к этому решению пришел. Уже думал, если никто не ответил - удалю тему.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.218 секунд. Запросов: 23.