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

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

Страниц: 1 ... 12 13 [14] 15 16 ... 24   Вниз
  Печать  
Автор Тема: Геометрия (задачки)  (Прочитано 207367 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #195 : Январь 03, 2017, 15:14 »

Да, и вот что. Я конечно питаю глубокое уважение к фундаментальной науке, но явно зашкаливают утверждения типа "все (абсолютно все) проистекает из нее", и мы должны ей быть безмерно благодарны типа
Цитировать
Спасибо отцам квантовой механики за наше счастливое детство
Это явный перегиб. См аттач, вот схема той формулы что приводил выше (источник тот же). Ну посчитал косинус между отраженным лучом и взглядом, задрал в степень и... все. Это что, фундаментальная наука? Ну не знаю, не могу сказать категорически "нет", но как-то не очень верится. Гораздо более правдоподобным выглядит версия что это придумал просто хороший алгоритмист. Который не совал бестолковых интегралов, не наводил "тень на плетень" заумными выкладками и.т.д. И как-то миллионы(?) людей используют эту простейшую формулу - и особо плохо пока никому не стало. 
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #196 : Январь 03, 2017, 15:43 »

Цитировать
но явно зашкаливают утверждения типа "все (абсолютно все) проистекает из нее", и мы должны ей быть безмерно благодарны типа
"Спасибо отцам квантовой механики за наше счастливое детство"
Ну Вы здесь передёргиваете.. Говорилось, что у фунд. науки и, например, тем чем занимаетесь Вы - разные цели и подходы - и не надо их смешивать.
Никто здесь не принижает прикладные области.
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 4349



Просмотр профиля
« Ответ #197 : Январь 03, 2017, 15:49 »

Это что, фундаментальная наука? Ну не знаю, не могу сказать категорически "нет", но как-то не очень верится.
Конечно. Без фундаментальной науки не было бы  никаких косинусов и никаких степеней. Именно фундаментальная наука сделала их доступным для обывателя. Улыбающийся

Гораздо более правдоподобным выглядит версия что это придумал просто хороший алгоритмист.  

А откуда этот хороший алгоритмист узнал законы отражения света? Или Френель с Ферма хорошие алгоритмисты? Улыбающийся
« Последнее редактирование: Январь 03, 2017, 16:48 от Old » Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #198 : Январь 04, 2017, 12:38 »

Да, и вот что. Я конечно питаю глубокое уважение к фундаментальной науке, но явно зашкаливают утверждения типа "все (абсолютно все) проистекает из нее", и мы должны ей быть безмерно благодарны типа
Цитировать
Спасибо отцам квантовой механики за наше счастливое детство
Это явный перегиб.

Почему? Я благодарен. Квантовые ямы, например, используются в DVD лазерах и мобильных телефонах. Так что я точно благодарен отцам квантовой механики Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #199 : Январь 05, 2017, 11:29 »

Ладно, вернемся к задачкам m_ax (аттач). Для простоты рассматриваем человеческие вектора x, y, z (напр QVector3D). Условия понял так: "Направления равновероятны" - значит достаточно большой набор таких векторов из одной точки образует равномерный "ежик", без проплешин и сгущений. "Единичный" - значит нормированный, длина = 1

Задача 37. Хотя напр-я распределены равномерно, но сами компоненты (x, y, z) нет. Напр значения x близкие к 1(-1) будут выпадать гораздо реже чем близкие к нулю. Наверное по "нормальному" закону (других просто не знаю  Улыбающийся). Но во всяком случае ф-ция распределения (pdf) симметрична относительно оси Y. Еще проще - какая бы хитрая pdf ни была, но "плюс" значения распределены так же как и "минус". А значит ответ "ноль" на все

Задача 38. Ну "точка" - наверное скалярное произведение (dot). Также пусть длины всех константных векторов = 1 чтобы эти множители не путались под ногами. Тогда

a) dot(a, n) ^ 2
Для среднего без разницы на что проецируется n, рез-т один для любого "а", в том числе и для осей координат. А значит это просто средняя длина любой компоненты. Для нормированного вектора
Цитировать
x * x + y * y + z * z = 1
т.к. x, y, z равноправны, то
x * x = y * y = z * z = 1/3
Ответ 1/3

b) dot(a, n) * dot(b, n)
Если a == b. то сводится к предыдущему случаю. Если a перпендикулярен b то ноль (как в задаче 37). А вот формулку не соображу. Ладно, как-то так (фонарь)
Ответ: max(dot(a, b), 0) / 3

c) dot(a, n) * n
Здесь просто раскрываем скобки
Ответ: a/3

d) (a x b) ^ 2
Ну "x" наверно векторное произведение, но это вектор, как он может быть в квадрате? Наверное имелась ввиду его длина. Это квадрат синуса, квадрат косинуса уже считали (1/3) поэтому
Ответ: 2/3

Это все. m_ax, даже если тут все неверно - повремените денек с "правельным ответом". Может товарищи тоже хотят высказаться  Улыбающийся
 
 
« Последнее редактирование: Январь 05, 2017, 11:46 от Igors » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #200 : Январь 05, 2017, 16:30 »

На самом деле, решение задачи 33  кроется в результате задачи 32*. Если мы знаем средние вида:
ninj,  ninjnk,    ninjnknl

то примеры из 33 решаются элементарно.  Улыбающийся

Цитировать
Это все. m_ax, даже если тут все неверно - повремените денек с "правельным ответом". Может товарищи тоже хотят высказаться
Да, я завтра вечерком напишу как я обычно объясняю эти задачки)
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #201 : Январь 06, 2017, 18:01 »

Выкладываю решения. 
Старался расписать решение как можно более подробно (текст в pdf приатачен) Но если остались вопросы - спрашивайте)

 
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #202 : Январь 06, 2017, 21:24 »

Выкладываю решения. 
Старался расписать решение как можно более подробно (текст в pdf приатачен) Но если остались вопросы - спрашивайте)
ю
m_ax, простите меня, но Вы сделали именно то, против чего я выступал в предыдущих своих комментариях.
Вы приводите в качестве решения записи, которые в принципе могут быть понятны только узкому специалисту.
Я не уверен, что в данном сообществе таких много (были бы - наверное бы отписались уже).
Для остальных подобные решения выглядят, извините, как набор египетских иероглифов Улыбающийся
Поэтому ответить на вопрос - а насколько верно подобное решение - тут никто не сможет.
Вот если бы Вы наглядно изобразили проблему и решение (картинку привели, например?) - то был бы другой разговор.
Это возможно?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #203 : Январь 06, 2017, 21:54 »

Цитировать
Вот если бы Вы наглядно изобразили проблему и решение (картинку привели, например?) - то был бы другой разговор.
Это возможно?
Конечно возможно) Ведь эти результаты достаточно просто моделируются на компьютере) Так что мешает сравнить результаты численных методов с аналитическими?
Вот только, к сожалению, не все задачки так легко поддаются численному счёту, или информацию из них выудить оказывается крайне сложно..(
Но конкретно здесь, можно легко сравнить результаты) Welcome  Улыбающийся
 
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #204 : Январь 08, 2017, 08:54 »

Мдааа....  Улыбающийся Ну хоть ответы совпадают с моими (в упрощенной постановке). С первого раза - ну конечно ни хрена не понятно (бедные пацаны студенты). Но понимаю что надо иметь терпение, поразмыслить - хотя мало кто это будет делать. Обещаю что последние Ваши задачки попробую решить. Но сначала меня заинтересовало другое - Ваше упоминание об интеграле по телесному углу. Думаю это будет хороший пример как (казалось бы) абстрактные формулы могут выливаться в весьма конкретные/практические рез-ты

19) Все знают что модель освещения в компьютерной графике очень упрощена (если не сказать "примитивна"). Источник света обычно точка или параллельный - в любом случае есть вектор: источник света - целевая точка (где вычисляется освещенность).  И вот мы хотим сделать более реалистичный источник - светит не точка, а пр-к имеющий площадь. Формально

- есть пр-к произвольным образом повернутый в пр-ве, длины сторон известны
- есть точка (P) где надо посчитать свет

Требуется

a) простой вопрос - как вообще посчитать сколько света (число) доходит до точки P ? (здесь академическая подготовка не нужна, можно и догадаться)

b) сложный вопрос - как считать диффузу и спекуляр (о которых не раз говорилось выше)? Ведь "площадь" - совсем не точка, где взять вектор? Ну разумеется "центр пр-ка" не проходит, так вблизи источника будет темно

Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #205 : Январь 08, 2017, 09:39 »

Для остальных подобные решения выглядят, извините, как набор египетских иероглифов Улыбающийся
Поэтому ответить на вопрос - а насколько верно подобное решение - тут никто не сможет.
Вот если бы Вы наглядно изобразили проблему и решение (картинку привели, например?) - то был бы другой разговор.
Это возможно?
Ну я тоже не знаю как это выразить картинкой. Можно попробовать "разжевать" один из примеров, напр самый простой
Цитировать
dot(a, n) ^ 2
Для QVector3D его компоненты (x, y, z) - это ведь тоже "скалярные произведения" этого вектора c осями х (y, z). А поскольку "все напр-я равноправны", то вместо dot(a, n) мы можем спокойно рассматривать компоненту x (или y или z). Чему равно ее среднее? Нулю (плюс выпадает так же как и минус). А среднее квадрата? 1/3 из условий нормировки. Задачки действительно простые - но вот "приловчиться" к академическому стилю изложения - ой непросто  Плачущий
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #206 : Январь 08, 2017, 16:00 »

Цитировать
Но сначала меня заинтересовало другое - Ваше упоминание об интеграле по телесному углу. Думаю это будет хороший пример как (казалось бы) абстрактные формулы могут выливаться в весьма конкретные/практические рез-ты
Кстатии, там опечатка в формуле для элемента телесного угла: синус там не в квадрате, а просто синус..
Вообще все конкретные серьёзные результаты всегда "выливаются" из абстрактных формул и теорий) Которые многие воспринимают не более чем забавные значки..( 

Цитировать
a) простой вопрос - как вообще посчитать сколько света (число) доходит до точки P ? (здесь академическая подготовка не нужна, можно и догадаться)
Самое наивное - предположить, что оно будет пропорционально той площади пр-а видимой нам из т. P. и обратно пропорционально квадрату расстояния от пр-к до т. P - т.е. как раз телесному углу, под которым мы видим пр-к. 
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #207 : Январь 09, 2017, 09:15 »

Самое наивное - предположить, что оно будет пропорционально той площади пр-а видимой нам из т. P. и обратно пропорционально квадрату расстояния от пр-к до т. P - т.е. как раз телесному углу, под которым мы видим пр-к. 
Видимая площадь / квадрат расстояния - это как раз приближенная оценка телесного угла (solid angle), которая неплохо работает когда P "достаточно далеко". Но увы, вблизи источника это не катит

А вообще отношение к физике довольно "вольное" Улыбающийся Параллельный источник обычно трактуется как "солнце", т.е. его яркость везде с постоянна и не падает с расстоянием. Впрочем и с солнцем куча проблем которые лезут из всех щелей. Для лампочки (точечный источник) надо что-то делать - очевидно что осветить всю вселенную она не сможет. Популярный OpenGL предлагал "коэффициенты" (помнится линейный и квадратичный) которые надо было довольно мучительно подстраивать. Впрочем в последние годы уже и этого нет, мол, "пишите шейдер и там делайте как хотите" (хз как)

Которые многие воспринимают не более чем забавные значки..( 
Ну вообще-то воспринять по-другому очень непросто  Улыбающийся Только прочитав Вашу методичку я понял что в первой задаче оказывается спрашивались не конкретные значения (просто нули), а обобщенная формула для ее применения в след задаче. Про Ваших студентов ничего не скажу (может там целая поросль гениев), но во всяком случае это слишком суровые требования для людей у которых что-то осталось в голове со школы/института - не более того 
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #208 : Январь 10, 2017, 15:43 »

Как обещал, дорешаю задачки m_ax

a) Начнем с простого dot(a, n) * dot(b, n). Тупенько распишем скалярные произведения
Цитировать
(a.x * n.x + a.y * n.y + a.z * n.z) *
(b.x * n.x + b.y * n.y + b.z * n.z)
Всего слагаемых 9 но для среднего остаются только 3 которые имеют квадраты n.x (n.y, n.z)
Цитировать
a.x * b.x * n.x * n.x + a.y * b.y * n.y * n.y + a.z * b.z * n.z * n.z
и средние
a.x * b.x / 3 + a.y * b.y / 3 + a.z * b.z / 3
Ответ: dot(a, b) / 3

b) Накинем еще вектор dot(a, n) * dot(b, n) * dot(c, n)
А здесь мэртво ноль, и не волнует что а == b == c

c) Наконец 4 вектора dot(a, n) * dot(b, n) * dot(c, n) * dot(d, n)
Цитировать
(a.x * n.x + a.y * n.y + a.z * n.z) *
(b.x * n.x + b.y * n.y + b.z * n.z) *
(c.x * n.x + c.y * n.y + c.z * n.z) *
(d.x * n.x + d.y * n.y + d.z * n.z)
Здесь всего 81 слагаемое (9 * 9), но с ненулеыми средними 27. Формально "ответ готов", но расписать такую колбасу тяжело, поэтому все сводится к неисчерпаемой задаче алгебры "упростить выражение". Не уверен, но по-моему так
Цитировать
Ответ: (dot(a, b) * dot(c, d) + dot(a, c) * dot(b, d) + dot(a, d) * dot(b, c)) / 9
« Последнее редактирование: Январь 10, 2017, 15:45 от Igors » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #209 : Январь 10, 2017, 16:03 »

Цитировать
Ответ: (dot(a, b) * dot(c, d) + dot(a, c) * dot(b, d) + dot(a, d) * dot(b, c)) / 9
Да, верно, только не на 9, а на 15 нужно делить.
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Страниц: 1 ... 12 13 [14] 15 16 ... 24   Вверх
  Печать  
 
Перейти в:  


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