Problem 6: Ugao između prave i ravni.
Pretpostavimo da imamo pravu p na kojoj poznajemo koordinate tačaka A i B. Također pretpostavimo da imamo ravan Π
koja je definisana tačkom na ravni R i vektorom normale V. Potrebno je izračunati ugao alpha kojeg obrazuje prava i ravan.
Rješenje: Rješenje zadatka svodi se na izračunavanje ugla između vekktora prave p i njene projektcije na ravan Π p'
. Kako već imamo vektor prave p, još je samo potrebno da se odredi vektor prave p’ koja predstavlja projekciju prave na ravan. S druge strane znamo da je vektor normale okomut na vektor smijera projektovane prave, pa je traženi ugao komplement ugla koji zatvara parava i vektor normale. Na osnovu ovog imamo:
Implementacija u C# izgleda kao na sljedećem listingu:
static void Main(string[] args) { //Zadatak 1: data je ravan 2x-y+z-6=0 i prava (x)/-1 = (y-1)/-1 ) (z-6)/1 //ulazni podaci za zadatak 1. Point B = new Point(2f, 4f, 0f); //tacka na pravoj Point A = new Point(0f, 1f, -1f); //tačka na pravoj Point R = new Point(0f, 0f, 6f); //tacka na ravni Point Vn = new Point(2f, -1f, 1f); //vektor normalne ravni //izracunavanje ugla //Vektor pravca kojeg obrazuju tacke A i B Point zraka = Point.Vector(A,B); // var vec = Point.CrossProduct(zraka, Vn); float scos_alpha = (float)(Point.Modul(vec) / (Point.Modul(Vn) * Point.Modul(zraka))); Console.WriteLine("Cosinus ugla alpha iznosi={0}", scos_alpha); Console.Read(); }
Klasa Point je implementirana u prethodnom postu.
Reblogged this on Dinesh Ram Kali..