/ / Интерполират x, y, z координати върху сфера, използвайки точки от два спин вектора? - вектор, геометрия, синус, косинус, ъглово-импулс

Интерполирайте координатите x, y, z на сфера, използвайки точки от два вектора на въртене? - вектор, геометрия, задължително, косинус, ъглово-инерционен момент

Искам да начертая 3D точки в реално време, които лежат върху повърхността на единичната сфера (r = 1).

Тук работят два въртящи вектора. Един вектор се върти около оста Y, X и Z стойности се изчисляват с помощта на cos () и sin () на окръжност, която лежи изцяло върху X / Z равнината, като всички Y стойности са равни на 0. Другите се въртят около ос X, стойностите на Z и Y, изчислени с помощта на cos () и sin () на окръжност, която лежи изцяло върху Z / Y равнината, като всички стойности на X са равни на 0. Ъгловият импулс на двата вектора обикновено не са същите. Обаче, крайните точки на векторите лежат по повърхността на обща сфера с радиус, равен на 1. Следователно те са с еднаква величина и и двата произлизат от същата 0, 0, 0 точка.

Да кажем, че първият вектор има ъгловимпульс, наречен angXZ и вторият angZY. Това означава, че по всяко време мога да изчисля две точки, по една за всеки спин вектор, използвайки angXY и angZY. С тези две 3D точки, каква е формулата за изчисляване на трета точка, която също ще лежи на повърхността на единичната сфера и ще бъде правилната интерполация между двете точки, изчислени от angXZ и angZY?

Виждам в главата си, че давам две 3D точкикоито лежат на повърхността на единична сфера, има един и единствен кръг (равнина), чиято обиколка те биха лежали и двете. Мога също така да намеря интуицията, че изчисляването на координатите на интерполираната точка се свежда до пресичане на ъгъла, който се създава от двете изчислени точки, когато се проектира върху окръжността, чиято обиколка споделят. Но аз просто не мога да прегърна превода и математиката.

Има ли проста формула, която отнема две 3Dточки, които лежат върху повърхността на единична сфера, за да изчислите трета точка, която също ще лежи върху тази повърхност и ще бъде правилната интерполация между първите две точки?

Използвам Delphi Pro 6, ако това е от значение.

Последващо наблюдение: Изглежда интуитивно, че трябва да мога да взема линейната среда на двете точки, изчислени от двойката спинови вектори, и да проектирам тази точка обратно към единичната сфера. Например формулата, намираща се на връзката по-долу, дава уравнения за изчисляване на средната точка между две 3D точки. Трябва ли тогава да мога да взема тази 3D точка и да използвам някаква формула, да коригирам координатите на XYZ по начин, който ги проектира обратно към повърхността на единичната сфера?

Намиране на координати на точка между две точки?

Отговори:

2 за отговор № 1

Нека M и N са вашите две точки и O произход. Ще намерим P, средата на MN сегмента: OP = OM + ON / 2. Изчислява се величината на OP: | OP |. Необходимата Ви точка ще бъде R с OR = OP / | OP | = OM + ON / 2 |

Успех в изчисляването на това. Не познавам Delphi, но може би позволява директни векторни операции. Ако не го направите с аналитична геометрия.

Координатите за средната точка сааритметични средни стойности на координатите на M и N (каза, че можете да ги изчислите). За да получите величината на | OP | извличаме квадратния корен от x ^ 2 + y ^ 2 + z ^ 2. За да получите R, просто разделете координатите на P на величината, изчислена точно сега.

Вие се справяте отделно, когато M и N са противоположни (P == O).