Pytanie:
Konwersja wewnętrzna (macierz Z) na współrzędne kartezjańskie
Mohammad Sohaib
2016-07-28 20:00:59 UTC
view on stackexchange narkive permalink

Czy istnieje sposób na konwersję ze współrzędnych wewnętrznych na kartezjańskie przy użyciu prostych wzorów?

Przestudiowałem i zaimplementowałem: INTERNAL TO CARTESIAN autorstwa Jacka D. Kunitza.

Jednak w jakiś sposób wartości x, y i z nie są poprawne. Nie wdrażam transformacji z powrotem do początkowej klatki, jak to jest napisane, ponieważ nie rozumiem tego kroku. Czy to jest powód, dla którego nie można uzyskać poprawnych odpowiedzi, czy też nie jest to dobry samouczek lub rozwiązanie do naśladowania.

Podany link zwraca 403 (zabroniony) - nie można uzyskać do niego dostępu. Możesz rozważyć zacytowanie odpowiednich informacji z materiału, do którego odsyłałeś w swoim pytaniu, aby uniknąć problemów związanych z łączeniem treści w przyszłości.
Dodałem oryginalny DOI do linku. Jest to podstawowa implementacja Internal to Cartesian z 1995 roku.
Jeden odpowiedź:
Geoff Hutchison
2016-07-28 20:36:07 UTC
view on stackexchange narkive permalink

Jasne, to tylko trygonometria. Istnieje wiele wdrożeń open source.

Na przykład:

Istnieją dziesiątki wyszukiwań w GitHub, jeśli nie Nie jak C ++ czy Python.

Jest też aplikacja internetowa firmy Shodor do konwersji z-matrix.

Mam jeszcze jedno pytanie: Jeśli mam na początku współrzędne (x y z). Następnie zmieniam je na współrzędne wewnętrzne. A potem zmieniam je z powrotem na współrzędne (xyz), jaka jest możliwość, że nowe punkty współrzędnych (xyz) są DOKŁADNIE takie same jak pierwsze do 4 punktów zmiennoprzecinkowych, czyli innymi słowy ... Czy jest w porządku, jeśli one nie są tak podobne. na przykład gdybym miał punkt w x = 3,1455, a nowy punkt to x = 3,4398. Czy to dopuszczalne?
Jest mało prawdopodobne, aby współrzędne kartezjańskie były identyczne. Na przykład, pierwszy atom będzie zwykle ustawiony na 0,0, 0,0, 0,0, niezależnie od początkowej pozycji. Liczy się nie kartezjański układ odniesienia, ale względne położenie atomów.
Powiedzmy, że mogę przesunąć pierwsze trzy atomy nowej cząsteczki, tak aby znalazły się dokładnie w tym samym miejscu, co stara. Czy jest jednak mało prawdopodobne, że będą inne? Albo załóżmy, że pierwszy atom (przypadkowo) został umieszczony na (0, 0, 0). drugi atom w (x, 0, 0) i trzeci atom również idealnie i przypadkowo umieszczone we właściwym miejscu. Zakładając to, czy cząsteczka będzie DOKŁADNIE identyczna z poprzednią, czy nadal może zawierać błędy zmiennoprzecinkowe?
ALBO innymi słowy, czy względne pozycjonowanie będzie DOKŁADNIE takie samo do ... powiedzmy ... trzech lub czterech liczb zmiennoprzecinkowych. na przykład: stara pozycja = (3,14556, 6,3434, 9,9594) i nowa pozycja = (3,1459, 6,3439, 9,9560)
Nie, często będą występować problemy z liczbami zmiennoprzecinkowymi, nawet jeśli orientacja jest dokładnie spójna.
Teraz mam inny problem: jeśli dokonam konwersji z kartezjańskiego na wewnętrzny, a następnie kilka razy z wewnętrznego na kartezjański (powiedzmy 10), cała moja cząsteczka jest pomieszana. Zauważyłem kilka rzeczy: po pierwsze, kąty i długości są zmieniane za każdym razem, gdy wykonuję konwersje tam iz powrotem, ale skręcenia pozostają ** dokładnie ** takie same. Czy to normalne?
Uważam również, że małe błędy przecinka dziesiętnego są dopuszczalne w tym przypadku, ale po konwersji 10 tam iz powrotem, moja cząsteczka wydaje się zbiegać do linii prostej w przestrzeni 3D ze wszystkimi atomami w rzędzie. Wygląda jak długi kij z atomami. Czy to też jest normalne?
Zauważyłem również, że długości się zmniejszają, kąty rosną o kilka stopni, a skręcenia / kąty dwuścienne pozostają dokładnie takie same podczas konwersji w przód iw tył.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...