Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 435

/ вопрос открыт /

Здравствуйте! Много раз видел в векторных редакторах такую вещь: если накидать на канву много линий и выделить их все, то появиться область Rect, которую можно растягивать и сужать и т.п. Вопрос, что происходить с линиями, в момент когда тянещь за сторону выделенной области(Rect)??

SMaks Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: SMaks (статус: 1-ый класс)
Вопрос отправлен: 26 марта 2007, 01:55
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Матвеев Игорь Владимирович

Здравствуйте, SMaks!
Просто определяются координаты прямоугольника, описанного вокруг выделенных объектов. Когда меняются размеры прямоугольника выделения оригинальные координаты точек домножаются на коэффициент изменения прямоугольника выделения (оригинальные / новые, по ширине и высоте). Аналогично и с поворотом.

Ответ отправил: Матвеев Игорь Владимирович (статус: Студент)
Время отправки: 26 марта 2007, 05:48
Оценка за ответ: 4

Комментарий к оценке: Допустим я получил этот прямоугольник, и взяв за левый край, уменьшаю его(с Rect0 до Rect1), то как должны измениться координаты точек внутри области?

Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 28 марта 2007, 14:24; участников в обсуждении: 2.
Матвеев Игорь Владимирович

Матвеев Игорь Владимирович (статус: Студент), 27 марта 2007, 06:35 [#1]:

Не понимаю, почему это вызывает у Вас трудности.
Посмотрите (файл удалён).
SMaks

SMaks (статус: 1-ый класс), 28 марта 2007, 14:24 [#2]:

Матвеев Игорь Владимирович: Спасибо, разобрался. Оказывается надо было сначала перевести точку в координаты, относительно области:
Point.X := Rect1.Left + round((Point.X-Rect0.Left) * ((Rect1.Right-Rect1.Left)/(Rect0.Right-Rect0.Left)));

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:46
Выполнено за 0.03 сек.