эффект Джанибекова был описан в 1985 году
Космонавт Джанибеков обнаружил феномен: вращающаяся в невесомости гайка вполне
себе так равномерно вращается некоторое время, а потом энергично переворачивается и
вращается дальше, потом опять переворачивается и т.д. Когда это заметили, сразу народ
напридумывал всяких новых теорий, торсионных полей, появились всякие газетные
статьи про то, что скоро наша Земля также перевернется и т.п. А дело-то было просто в
том, что, как известно, вращение тела относительно главной оси со средним моментом
инерции (т.е. не наименьшим и не наибольшим) неустойчиво. Отсюда мораль: прежде чем
придумывать новые теории на каждую гайку, неплохо бы получше выучить старые.
При транспортировке грузов в космос вещи упаковываются в мешки, которые крепятся
металлическими лентами, зафиксированными винтами и "барашками" гайками с
"ушками". Разбирая груз в невесомости, достаточно стукнуть пальцем по "барашку". Он
отлетает, ты его спокойно ловишь и кладешь в карман. Открутив очередной "барашек",
Владимир Александрович обратил внимание, как гайка, пролетев 40 сантиметров,
неожиданно перевернулась вокруг своей оси и полетела дальше. Пролетев еще 40
сантиметров, опять перевернулась. Джанибеков закрутил "барашек" обратно и повторил
эксперимент. Результат тот же. Тогда космонавт попробовал повторить с другим
"барашком". Ее полет до "точки переворота" составил 43 сантиметра. Джанибеков решил
попробовать с каким-нибудь другим объектом. Запущенный пластилиновый шарик точно
так же, пролетев некоторое расстояние, перевернулся вокруг своей оси и полетел дальше.
Александр Тимофеев считает, что вывод тут напрашивается следующий: Земля это тоже
шарик, который летит в космосе. Значит, и она в какой-то момент может неожиданно
повернуться вокруг своей оси. "Говорят, что этот цикл составляет 16 тысяч лет. Еще
говорят, что мы уже подходим к этому рубежу. Так это или нет не знаю. Но такое явление
существует, его назвали "эффект Джанибекова", утверждает Тимофеев.
Эффект Джанибекова (гайка Джанибекова)
Программа демонстрирующая эффект Джанибекова.
Скачать программу: djanibek.zip,
Для запуска программы нажмите на кнопочку (Start). Гайку можно вращать и
масштабировать кнопками мышки и роликом.
Эффект Джанибекова заключается в том, что тело свободно вращающееся в невесомости
и имеющее определённые моменты инерции и начальные скорости вращения, ведёт себя
следующим образом: сначала оно вращается вокруг одной оси, потом эта ось вдруг
неожиданно переворачивается в противоположенную сторону, после чего тело
продолжает вращаться как и до переворота, потом ось опять переворачивается в
противоположенную сторону, возвращаясь в исходное положение, и тело опять вращаться
как в начале, а потом опять ось переворачивается и так далее.
Поскольку в земных условиях посмотреть на эффект Джанибекова сложно, из-за
отсутствия невесомости, то как это происходит можно посмотреть в приведённой
программе, которая эффект Джанибекова неплохо моделирует. Делается это так:
Методика моделирования эффекта Джанибекова
В качестве начальных условий нужно задать три момента инерции (Iteration moments)
тела. Вместо них можно задать размеры условного параллелепипеда который будем
вращать (Cube sides) и плотность его материала (density), тогда его моменты инерции
вычисляются по следующим формулам:
1. Ix = density * x * y * z * (y2 + z2) / 12
2. Iy = density * x * y * z * (x2 + z2) / 12
3. Iz = density * x * y * z * (x2 + y2) / 12
Также задаются три начальные скорости вращения по осям (wx, wy, wz) в оборотах в
секунду. Чтобы превратить их в углы поворотов (OmegaX, OmegaY, OmegaZ), их надо
домножить на 2*Pi.
Далее вычисляются комплексы моментов из формулы Эйлера:
1. Dix = (Iz - Iy) / Ix
2. Diy = (Iz - Iy) / Ix
3. Diz = (Iy - Ix) / Iz
После чего начинается итерирование, то есть последовательное вычисление новых углов
поворота, по ним находятся положения осей гайки, по положениям осей рисуется на
экране сама гайка, и так продолжается по кругу. Углы поворотов (OmegaX, OmegaY,
OmegaZ) вычисляются по таким формулам:
1. DeltaOmegaX = -Dix * OmegaY * OmegaZ * Speed * deltaTime
2. DeltaOmegaY = -Dix * OmegaX * OmegaZ * Speed * deltaTime
3. DeltaOmegaZ = -Dix *OmegaX * OmegaY * Speed * deltaTime
1. OmegaX = OmegaX +DeltaOmegaX
2. OmegaY = OmegaY +DeltaOmegaY
3. OmegaZ = OmegaZ +DeltaOmegaZ
Здесь deltaTime - время прошедшее с предыдущей итерации, Speed - это параметр в
окошке программы, чтобы просто регулировать скорость работы. Если возникают глюки в
работе, то надо сделать его поменьше.
Далее надо повернуть объект на указанные углы. Ротации (то куда повёрнут объект в
пространстве) в OpenGL задаются матрицами 3x3. Матрица - это три вектора задающие
направления трёх взаимно-перпендикулярные осей объекта. Называются они Right (право,
тангаж), Direction (вперёд, крен), Up (вверх, рысканье). Матрица по-умолчанию из этих
трёх векторов выглядит так:
Матрица
[ 1 0 0 ] - вектор Right
[ 0 1 0 ] - вектор Direction
[ 0 0 1 ] - вектор Up
Чтобы повернуть эту матрицу на найденные нами углы (OmegaX, OmegaY, OmegaZ),
нужно создать три матрицы вращений вокруг осей X Y и Z и домножить её на них.
Матрицы вращений выглядят так:
Вокруг оси X:
[
[
[
1
0
0
0
0
]
cos(OmegaX) -sin(OmegaX) ]
sin(OmegaX) cos(OmegaX) ]
Вокруг оси Y:
[ cos(OmegaY)
[
0
[ -sin(OmegaY)
0
1
0
sin(OmegaY) ]
0
]
cos(OmegaY) ]
Вокруг оси Z:
[
[
[
cos(OmegaZ) -sin(OmegaZ)
sin(OmegaZ) cos(OmegaZ)
0
0
0
1
0
]
]
]
Получив три матрицы вращений последовательно умножаем их на матрицу гайки.
Делается это по следующим формулам.
1.
2.
3.
4.
5.
6.
7.
8.
9.
ResultMatrix[0, 0] = M1[0, 0] * M2[0, 0] + M1[0, 1] * M2[1, 0] + M1[0, 2] * M2[2, 0]
ResultMatrix[0, 1] = M1[0, 0] * M2[0, 1] + M1[0, 1] * M2[1, 1] + M1[0, 2] * M2[2, 1]
ResultMatrix[0, 2] = M1[0, 0] * M2[0, 2] + M1[0, 1] * M2[1, 2] + M1[0, 2] * M2[2, 2]
ResultMatrix[1, 0] = M1[1, 0] * M2[0, 0] + M1[1, 1] * M2[1, 0] + M1[1, 2] * M2[2, 0]
ResultMatrix[1, 1] = M1[1, 0] * M2[0, 1] + M1[1, 1] * M2[1, 1] + M1[1, 2] * M2[2, 1]
ResultMatrix[1, 2] = M1[1, 0] * M2[0, 2] + M1[1, 1] * M2[1, 2] + M1[1, 2] * M2[2, 2]
ResultMatrix[2, 0] = M1[2, 0] * M2[0, 0] + M1[2, 1] * M2[1, 0] + M1[2, 2] * M2[2, 0]
ResultMatrix[2, 1] = M1[2, 0] * M2[0, 1] + M1[2, 1] * M2[1, 1] + M1[2, 2] * M2[2, 1]
ResultMatrix[2, 2] = M1[2, 0] * M2[0, 2] + M1[2, 1] * M2[1, 2] + M1[2, 2] * M2[2, 2]
Здесь M1 - это исходная матрица, а М2 - матрицы вращений, сначала первая, потом
вторая, потом третья. Получив результат, мы получаем новые положения осей гайки в
пространстве.
Интересные начальные условия
Если поставить стороны куба (Cube sides) в 10, 10, 1, то характер вращения изменится.
Гайка уже не будет резко переворачиваться, а её ось вращения будет периодически плавно
переходить из зелёной в красную, и из красной в зелёную, при этом синяя ось будет
двигаться строго по кругу, в чём легко убедиться включив в программе опцию (Lines).
Если выставить стороны куба в 10, 1, 1, то будет происходить примерно тоже самое,
только меняться местами будут уже не зелёная и красная, а зелёная и синяя оси.
Выставлять скорость слишком большой нельзя, потому, что тогда омеги начнут рости, и
когда превысят предел допустимый для вещественных чисел, программа это зафиксирует
и остановится. В прочем это можно изменить изменив параметр (Stop on error) c omega на
none.
Если интересно посмотреть расчёты, то это можно сделать поставив галочку (Type log) и
заглянув на закладку (Log). Отслеживать расчёты удобнее в пошаговом режиме (Step by
step running), нажимая на кнопку (Step) для расчёта следующего шага.
3D-crosseyed эффект Объёмное изображение
Суть новомодного эффекта 3D-crosseyed в том, можно увидеть объёмное изображение на
плоском мониторе, всего лишь правильно перенастроив собственные глаза.
Включается эффект галочкой "3D-crosseyed" в результате чего на экран выводятся рядом
две картинки, одна для правого, другая для левого глаза.
Чтобы увидеть объёмное изображение, нужно развести глаза в стороны, чтобы они
смотрели не в одну точку, а каждый на свою картинку. Если так скосить, то картинка
раздвоится, и будет видно не две шестерёнки, а четыре, по два у каждого глаза. А далее
надо свести эти два изображения так, чтобы вместо четырёх шестерёнок осталось только
три, то есть, чтобы две внутренние шестерёнки слились воедино. На них то и нужно
смотреть. Тогда перед глазами вдруг неожиданно возникнет объёмный объект, как бы
парящий в воздухе, а не просто нарисованный на экране.
Если усилием воли добиться этого от своего зрения не получается, то можно применить
хитрость. Взять лист бумаги или использовать просто ладошку и поставить его поперёк
экрана так, чтобы он отделял левую шестерёнку от правой. И не давал правому глазу
видеть левую шестерёнку, а левому глазу - правую. Далее перед глазами полученные два
изображения шестерёнки которы надо свести воедино, и появится полная объёмная 3Dшестерёнка.
Потренироваться не скачивая программу можно на этой большой картинке: djani3.jpg.
Чтобы в программе было удобнее смотреть, рекомендуется закрыть левую панель нажав
на клавиу F2.
История открытия эффекта
эффект Джанибекова был описан в 1985 году
При транспортировке грузов в космос вещи упаковываются в мешки, которые крепятся
металлическими лентами, зафиксированными винтами и "барашками" гайками с
"ушками". Разбирая груз в невесомости, достаточно стукнуть пальцем по "барашку". Он
отлетает, ты его спокойно ловишь и кладешь в карман. Открутив очередной "барашек",
Владимир Александрович обратил внимание, как гайка, пролетев 40 сантиметров,
неожиданно перевернулась вокруг своей оси и полетела дальше. Пролетев еще 40
сантиметров, опять перевернулась. Джанибеков закрутил "барашек" обратно и повторил
эксперимент. Результат тот же. Тогда космонавт попробовал повторить с другим
"барашком". Ее полет до "точки переворота" составил 43 сантиметра. Джанибеков решил
попробовать с каким-нибудь другим объектом. Запущенный пластилиновый шарик точно
так же, пролетев некоторое расстояние, перевернулся вокруг своей оси и полетел дальше.
Источник: http://otvet.mail.ru/question/9420973/
В этой связи возникает закономерный вопрос: а что же собственно открыл Джанибеков,
если подобное поведение объектов легко моделируется по формулам Эйлера
восемнадцатого века?
Думаю, заслуга Джанибекова в том, что он обнаружил особые начальные условия
(определённые моменты инерции и угловые скорости) при которых тело ведёт себя столь
странным образом. Удивительно, что за триста лет существования этих формул никто до
него этого не обнаружил. Хотя с другой стороны, на Земле нет невесомости, и на практике
найти эффект нельзя, а компьютеров в те далёкие времена или не было вовсе, или были
совсем ещё в зачаточном состоянии, а без трёхмерной визуализации найти эффект крайне
сложно.
Так, что будьте внимательны, и может быть даже в старых и знакомых вещах сможете
найти что-то новое и вписать своё имя в историю.
Скачать

эффект Джанибекова был описан в 1985 году