У меня есть ряд координат (представляющих электроды на ЭЭГ-колпачке) на сфере. У меня есть положение как в декартовых, так и в сферических координатах.Как повернуть координаты на сфере на 90 градусов?
chan X Y Z long lat sph_radius
1 Fp1 8.08e+01 2.61e+01 -4.00 17.9 -2.70 85
2 Fp2 8.08e+01 -2.61e+01 -4.00 -17.9 -2.70 85
3 F3 5.76e+01 4.82e+01 39.90 39.9 28.00 85
4 F4 5.76e+01 -4.81e+01 39.90 -39.9 28.00 85
5 C3 3.87e-15 6.32e+01 56.90 90.0 42.00 85
6 C4 3.87e-15 -6.32e+01 56.90 -90.0 42.00 85
7 P3 -5.76e+01 4.82e+01 39.90 140.0 28.00 85
8 P4 -5.76e+01 -4.81e+01 39.90 -140.0 28.00 85
9 O1 -8.08e+01 2.61e+01 -4.00 162.0 -2.70 85
10 O2 -8.08e+01 -2.61e+01 -4.00 -162.0 -2.70 85
11 F7 4.99e+01 6.84e+01 -7.49 53.9 -5.06 85
12 F8 4.99e+01 -6.84e+01 -7.49 -53.9 -5.05 85
13 T3 5.18e-15 8.45e+01 -8.85 90.0 -5.97 85
14 T4 5.18e-15 -8.45e+01 -8.85 -90.0 -5.97 85
15 T5 -4.99e+01 6.84e+01 -7.49 126.0 -5.06 85
16 T6 -4.99e+01 -6.84e+01 -7.49 -126.0 -5.05 85
17 Fz 6.07e+01 0.00e+00 59.50 0.0 44.40 85
18 Cz 5.20e-15 0.00e+00 85.00 0.0 90.00 85
19 Pz -6.07e+01 -7.44e-15 59.50 -180.0 44.40 85
Я хочу, чтобы повернуть все электроды на 90 градусов против часовой стрелки/вниз по оси, так что электрод Cz, который в настоящее время (длинный = 0, ш = 90), становится (длинный = 0, ш = 0). Меня не волнует, выполняется ли вращение на декартовых или сферических координатах, так как я могу легко преобразовать один в другой.
Я попытался найти решение этой проблемы на этом сайте, но все они были подавляющими. Если бы кто-нибудь мог предложить простую формулу R, чтобы получить эту ротацию, я бы очень признателен ей.
Я думаю, что ваш поворот плохо определен , Изобразите землю и представьте точку на северном полюсе (с осью z, проходящей через северный и южный полюса). Если вы хотите повернуть эту точку на 90 градусов вниз, любая точка на экваторе является допустимым результатом. Если вы можете лучше определить свое вращение [раздел страницы википедии на 3D-вращении] (https://en.wikipedia.org/wiki/Rotation_matrix#In_three_dimensions), вы должны сформулировать правильную матрицу для умножения на. – Gregor
@ dww Я думаю, что ваш ответ был полезен, но нет, я не думаю, что OP не думает о том, чтобы ось вращалась вокруг. Пример '(long = 0, late = 90) | -> (long = 0, lat = 0)' предполагает отображение, ортогональное оси z, но ортогональное * как * кажется плохо определенным. – Gregor
, как отметил Григор, этот поворот меня немного смущает. Я предлагаю вам сначала определить систему отсчета, а остальное будет проще: в общем случае «мы» думаем о Земле, XY - это плоскость, в которой находится экватор, XZ - это плоскость, в которой находится гринвичский меридиан, ось X содержит точку с широтой и долготой, равной нулю. В этой системе отсчета вращение вокруг Z включает только долготу (движение вращения Земли), вращение вокруг Y включает только широту (наклон Земли), вращение вокруг X включает в себя оба значения. – marcoresk