Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Выполнение произвольных преобразований на плоскости. Композиция преобразований
Рассмотренные нами ранее преобразования поворота выполнялись только относительно начала координат. Так же и отражение проводилось только относительно специальных осей. Как же выполнить поворот вокруг произвольной точки или отражение относительно произвольной оси? Ключевая идея состоит в приведении сложного преобразования к более простому частному случаю. Общая схема выполнения такого преобразования следующая: · С помощью преобразований переноса, поворота и масштабирования преобразовать исходную сцену так, чтобы требуемое произвольное преобразование свелось к частному случаю, решение которого известно; · Выполнить требуемое преобразование; · Применить к сцене преобразования, обратные сделанным в первом пункте, чтобы вернуть ее в исходное состояние. Рассмотрим данный подход на примере, показанном на рис 2.10. Повернем отрезок, заданный своими конечными точками P1 и P2, вокруг точки Р1 на угол 90 градусов. Как выполнить поворот объекта вокруг произвольной точки, мы не знаем. Однако нам известно как поворачивать объекты вокруг начала координат. На первом этапе преобразуем сцену так, что бы точка Р1 совпала с началом координат (в нашем случае сцена состоит только из одного объекта, но мы используем этот термин, чтобы не терять общности схемы). Для этого используем преобразование переноса, определяемое вектором, соединяющим точу Р1 с началом координат. Р’ = P*T = Т где Р - матрица объединяющая координатные векторы конечных точек отрезка, а Т – матрица переноса. На втором этапе выполним поворот отрезка на требуемый угол. Р’’= P’R Где R – матрица поворота на угол 90 градусов относительно начала координат. Для преобразования сцены в исходное состояние применим трансформацию переноса, обратную использованной на первом этапе. Напомним, что обратный перенос формируется вектором, имеющим длину, равную вектору прямого переноса, но противоположным по направлению. В данном примере - это вектор из начала координат в точку Р1. Получаем конечное положение отрезка. Р’’’ = Р’’T-1 Одной из главных причин использования представления преобразования в матричной форме является возможность получать сложные матрицы путем композиции более простых матриц. Или, другими словами, мы можем получать матрицы сложных геометрических преобразований, перемножая матрицы элементарных преобразований, рассмотренных нами выше. Сведем рассмотренные преобразования в общую формулу Р’’’ = ((P*T)*R)*T-1 = P*T*R* T-1= P*M где матрица М является композицией (объединением, соединением, конкатенацией) матриц. Остановимся на свойствах композиции, в частности, на коммутативности. В общем случае произведение матриц не коммутативно. То же можно сказать о композиции геометрических преобразований. В рассмотренном примере поменяем местами матрицы преобразования переноса и поворота K = P *R*T * T-1= P*R. Таким образом, мы пришли к простому повороту относительно начала координат. А прямая и обратная матрицы переноса при умножении дали единичную матрицу, т.е. аннулировали преобразование. Геометрический смысл результата композиции показан на рис. 2.11 б. Полученные результаты преобразований не совпадают К ¹ Р’’’, следовательно, одни и те же матрицы в зависимости от порядка перемножения дают разные композиции. Кроме того, необходимо обратить внимание на порядок умножения координатного вектора на матрицы преобразования. Мы умножали вектор-строку на матрицу. В некоторых источниках встречается обратный порядок – проводится умножение матрицы преобразования на координатный вектор. Чтобы перейти к этому способу, необходимо координатный вектор представить как вектор-столбец, а матрицу преобразования транспонировать. Другим примером использования рассмотренной схемы построения композиций может служить создание преобразования отражения относительно произвольной прямой. Для перехода к частному случаю достаточно переместить прямую так, чтобы она проходила через начало координат, и повернуть ее до совпадения с одной из главных координатных осей. Рассмотренные принципы построения композиций для сложных преобразований широко используются в машинной графике. Мы вернемся к нему при решении задач отсечения, удаления невидимых линий и др.
|