Russian Qt Forum
Ноябрь 25, 2024, 13:16
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Разное
>
Говорилка
>
Геометрия (задачки)
Страниц:
1
...
20
21
[
22
]
23
24
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Геометрия (задачки) (Прочитано 226660 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Геометрия (задачки)
«
Ответ #315 :
Сентябрь 19, 2018, 12:38 »
30) Обратная задачка - вот есть чайник и матрица его (аттач). Что делает эта матрица?
Ну ясно, матрица - формальный аппарат, может использоваться для чего угодно. Но мы рассматриваем лишь самый простой (и самый популярный) случай - перевод из одной СК в другую. Поэтому вопрос можно ставить и так: из какой СК в какую эта матрица переводит? Или: какие координаты должны на нее умножаться и какие ожидаются после умножения?
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Геометрия (задачки)
«
Ответ #316 :
Сентябрь 21, 2018, 10:03 »
это задача для первокурсников на понимание матрицы перехода между базисами?
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Геометрия (задачки)
«
Ответ #317 :
Сентябрь 21, 2018, 15:25 »
Цитата: kambala от Сентябрь 21, 2018, 10:03
это задача для первокурсников на понимание матрицы перехода между базисами?
Базис - это "как направлены оси мировой СК" причем формулируется это словами. Напр
Цитировать
ось X идет слева направо, Y - снизу вверх и Z - на нас
пожалуй самый популярный, но возможны и другие. Напр AutoDesk направляет вверх Z - и отлично себя чувствует. Часто просто предъяаляют рисунок - но это же не значит что нарисованные оси - обязательно базис
Здесь просто визуализированы оси матрицы, что Вы можете о ней сказать?
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Геометрия (задачки)
«
Ответ #318 :
Сентябрь 26, 2018, 04:59 »
Используем базовые знания/понятия. Мы знаем что умножение точки/координаты на матрицу СК сводится к проецированию на записанные в ней оси, Здесь эти оси нарисованы - ну так проецируем. Возьмем точку A на носике чайника и опустим из нее перпендикуляр на красную ось (X). Длина (знаковая) красного отрезка от упавшей точки до пересечения осей и есть новая координата X что получается в рез-те умножения на матрицу. Точно так же спроецируем точку A на зеленую и синюю оси, получим новые Y и Z. Вот они, "суть косинусы" (так сейчас учат в ВУЗе). Попробуем сделать то же самое для чайника на картинке предыдущего поста. Для точки A получим те хе самые X>0, Y>0, Z = 0. Точка пересечения осей всегда будет иметь координаты (0, 0, 0) после умножения.
Отсюда вывод - мы видим локальную СК чайника, эта матрица переводит в... локальную СК (да, масло масляное
) где точки (вертексы) остаются неизменными как бы чайник ни крутили и как бы ни облетали камерой.
Примечание: хотя термин "локальная СК" вполне корректен, чаще говорят "модельные координаты", а то и просто "в модель". При этом часто имеется ввиду что это те самые координаты что записаны в файле модели, напр в .obj файле, хотя это и не всегда так.
Ну вот, с "куда" ясно, осталось разобраться с "откуда". Или: какие координаты должны множиться на эту матрицу?
А чтобы лучше понять/прочувствовать полезно поиграть в "почемучку", позадавать самому себе вопросы, пусть они и звучат наивно. Ну например
Цитировать
А чего это "X = длине красного отрезка"? Разве точка пересечения осей нулевая в исходной СК ?
Или
Цитировать
А откуда взялась эта "локальная СК"? Почему у нее центр на донышке чайника, а не, скажем, в его центре или на крышке или еще где? "Кто так сказал?"
или совсем уж глуповатый(?) вопрос
Цитировать
А откуда я возьму "точку A на носике", т.е. 3 конкретных x, y, z ?
«
Последнее редактирование: Сентябрь 26, 2018, 05:04 от Igors
»
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Геометрия (задачки)
«
Ответ #319 :
Ноябрь 20, 2018, 15:38 »
31) Дано то же что и в предыдущей задачке: объект и его матрица (QMatrix4x4). Нужно написать простенький драг: юзер может (интерактивно) двигать объект вдоль одной из осей. Напр тыкнул он на синюю ось и тащит, а мы пересчитываем матрицу так чтобы объект "скользил" вдоль этой оси как по рельсу.
Как решать - дело вкуса, я бы разбил на 2 подзадачки:
a) получить нужное смещение (QVector3D), а то с мыши мы имеем только пыксели
b) как-то присобачить это смещение к матрице, ну ясно что просто вызовом translate здесь не отделаться
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Геометрия (задачки)
«
Ответ #320 :
Апрель 18, 2019, 16:09 »
Поехали дальше, потренируемся в алгебре
32) Даны 2 прямые в пр-ве, каждая задана точкой (p) и направлением (dir), пусть нормированным. Требуется
a) Определить что прямые
a1) параллельны
a2) пересекаются
a3) скрещиваются
b) Найти минимальное расстояние между прямыми
с) Найти точки минимального отрезка (напр A и B) соединяющего эти прямые.
Возможная ностальгия
Цитировать
Ах, вот когда я был студентом, я так эти задачки щелкал! А сейчас... ничего уже не помню! и.т.п.
А помнить ничего и не надо, весь инструментарий есть в любом классе "вектор", напр QVector3D.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Геометрия (задачки)
«
Ответ #321 :
Ноябрь 21, 2020, 12:46 »
Да, с математикой совсем мрачно. Ну ладно, попробуем так
Вчера видел какой-то детектив (глупейший), и там снайпер застрелил жертву через окно. И сыщики поняли что это должен быть снайпер высокого класса, т.к. он стрелял через стеклопакет и должен был это учесть. Ну наверно имеется ввиду что стекло преломляет лучи.
Насколько трудна была задача снайпера? Какую поправку он должен был сделать? Параметры, напр толщина и число стекол придумайте сами, просто чтобы были разумные
Записан
tux
Global Moderator
Бывалый
Offline
Сообщений: 404
Re: Геометрия (задачки)
«
Ответ #322 :
Ноябрь 21, 2020, 12:56 »
Цитата: Igors от Ноябрь 21, 2020, 12:46
т.к. он стрелял через стеклопакет и должен был это учесть.
Эта задача корректного решение не имеет. В случае одного выстрела. Причём тут мало учитывания преломления, нужно ещё брать во внимание, что стеклопакет - это несколько стёкол. Пуля, при пробивании пакета, наверняка сместится.
В реальности, если снайпер всё-таки высокого класса и хочет ушатать жертву, то он будет стрелять 2 раза с короткими интервалами. Первая пуля пробъёт стеклопакет, вторая - ушатает жертву.
Записан
Digital Art
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Геометрия (задачки)
«
Ответ #323 :
Ноябрь 21, 2020, 12:58 »
Цитата: tux от Ноябрь 21, 2020, 12:56
В реальности, если снайпер всё-таки высокого класса и хочет ушатать жертву, то он будет стрелять 2 раза с короткими интервалами. Первая пуля пробъёт стеклопакет, вторая - ушатает жертву.
Один раз он будет стрелать, когда жертва выйдет на открытое место.
Не один профи не будет так рисковать, вдруг стекла пуленепробиваемые.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Геометрия (задачки)
«
Ответ #324 :
Ноябрь 21, 2020, 13:57 »
Цитата: tux от Ноябрь 21, 2020, 12:56
Эта задача корректного решение не имеет. В случае одного выстрела. Причём тут мало ...
Довольно типичная реакция которую я называю "лапки кверху". Мол, это настолько сложно что нечего и пытаться, даже не дергайся. Справедливости ради заметим что основания для этого имеются - увы, обращение к "фундаментальной" обычно ничем хорошим не кончается, научные работники охотно тычут в нос интегралы и дифуры (мутить воду они мастера).
Но для всех задачек в этой теме это не так. А здесь расчет преломлений очень прост, можно даже в уме посчитать, без бумажки. Главное преодолеть барьер "это так сложно"
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Геометрия (задачки)
«
Ответ #325 :
Ноябрь 21, 2020, 14:21 »
Цитировать
Но для всех задачек в этой теме это не так. А здесь расчет преломлений очень прост, можно даже в уме посчитать, без бумажки. Главное преодолеть барьер "это так сложно"
Ну дык берите Monte Carlo (за основу), и вперёд и с песней.. Если качественно что-то оценить - неплохой метод.
Да, есть исключения, но они весьма специфические (типа Грассмановские переменные)
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Геометрия (задачки)
«
Ответ #326 :
Ноябрь 21, 2020, 14:32 »
Цитата: m_ax от Ноябрь 21, 2020, 14:21
Ну дык берите Monte Carlo (за основу), и вперёд и с песней.. Если качественно что-то оценить - неплохой метод.
Да, есть исключения, но они весьма специфические (типа Грассмановские переменные)
Вот живое подтверждение моих слов выше. Вместо того чтобы ободрить человека (у которого моск и так покалечен "собирать"), Вы напротив, сразу стремитесь его запугать незнакомыми ему вумными словами. Ну какой нафиг здесь Monte Carlo? Какой Грассман? Тут одно арифметическое действие - и все
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Геометрия (задачки)
«
Ответ #327 :
Ноябрь 21, 2020, 14:47 »
Ой, если человеку нужно, или он в этом вопросе заинтересован - то он в этом разберётся!
Это совершенно нормально!
Я лишь высказываю различные подходы//т. зрения, что тоже нормально!
Представьте себе - так устроен прогресс И жизнь.
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
tux
Global Moderator
Бывалый
Offline
Сообщений: 404
Re: Геометрия (задачки)
«
Ответ #328 :
Ноябрь 21, 2020, 20:04 »
Цитата: Igors от Ноябрь 21, 2020, 13:57
Довольно типичная реакция которую я называю "лапки кверху".
А вы попробуйте решить. Там проблема ведь не в коэффициентах преломления (которые, как раз посчитать не сложно).
Кстати, если уж совсем заморачиваться - простая школьная задача о двух трубах м бассейне не такая уж и простая. Хотя, в идеальных условиях вполне себе решается. В учебнике.
Записан
Digital Art
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Геометрия (задачки)
«
Ответ #329 :
Ноябрь 22, 2020, 13:32 »
Цитата: tux от Ноябрь 21, 2020, 20:04
Кстати, если уж совсем заморачиваться - простая школьная задача о двух трубах м бассейне не такая уж и простая. Хотя, в идеальных условиях вполне себе решается. В учебнике.
Да, там красивая заморочка - ведь вода вытекает с разной скоростью под разным давлением
Цитата: tux от Ноябрь 21, 2020, 20:04
А вы попробуйте решить. Там проблема ведь не в коэффициентах преломления (которые, как раз посчитать не сложно).
Современный человек настолько развращен/растлен обилием информации, что толку от того что я просто "выложу готовое" - абсолютно никакого. Ну конечно он это знал, да и вообще это "элементарно". Вот не так уж давно пытался чего-то рассказывать, а мне типа "достаточно пройти по ссылке, там все гораздо лучше разжевано"
Поэтому давайте решать вместе. Разумеется вооружимся знаниями, возьмем хотя бы
викусю
. Формула там есть, причем до боли простая, и ей уже 400 лет, искать какую-то другую - ну не видно смысла. Итак, мы "прошли по ссылке", и, стало быть, решение у нас в кармане? Так какую поправку должен сделать снайпер?
Цитата: m_ax от Ноябрь 21, 2020, 14:47
Ой, если человеку нужно, или он в этом вопросе заинтересован - то он в этом разберётся!
Ой ли? А если "точка невозврата" уже давно пройдена (с помощью <T>), и остается только делать вид, что, мол, "не заинтересован"?
Записан
Страниц:
1
...
20
21
[
22
]
23
24
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...