Diskuze: Rotace bodů v prostoru
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Rotace v prostoru je stejná, jako rotace v rovině:
// rotace okolo osy z
x'=x*cos(α) - y*sin(α)
y'=x*sin(α) - y*cos(α)
z'=z
// rotace okolo osy y
x'=x*cos(α) - z*sin(α)
y'=y
z'=x*sin(α) - z*cos(α)
// rotaci okolo osy x si domyslíš
Me by ty matice taky vydesili zvlast kdyz v C# jde napsat
Point3D point = new Point3D(2, 2, 2);
RotateTransform3D rotation = new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(1, 2, 3), 30));
Point3D newPoint = rotation.Transform(point);
Matice pro transformace jsou právě to nejlepší, co vymysleli. V programování to ušetří řádově několikrát operací. Na každý bod počítate sinus a kosinus jednou, v maticích je to už vypočítané předem, takže se jen násobí.
formula spravna nie je cos(uhol)-sin(uhol) a sin(uhol)-cos(uhol) ale cos(uhol)-sin(uhol) & sin(uhol) "+" cos(uhol)
Zobrazeno 6 zpráv z 6.