TI/Programowanie dla Fizyków Medycznych:Kolokwium2: Różnice pomiędzy wersjami

Z Brain-wiki
(Utworzono nową stronę "==Kolokwium 2== 19.01.2018 Zdefiniuj klasę opisującą opisującą wektor magnetyzacji woksela w trzech wymiarach. '''Parametry nieobowiązkowe konstruktora:''' Bezwz...")
 
Linia 8: Linia 8:
 
'''Pozostałe metody:'''
 
'''Pozostałe metody:'''
 
#Metoda bez parametrów zwracająca współrzędne magnetyzacji w układzie sferycznym <math>M, \theta, \phi</math>.
 
#Metoda bez parametrów zwracająca współrzędne magnetyzacji w układzie sferycznym <math>M, \theta, \phi</math>.
#Metoda bez parametrów zwracająca współrzędne magnetyzacji w układzie kartezjańskim, <math>x=r \cos \theta \cos \phi, y=r \cos \theta \sin \phi, z=r \sin \theta</math>.
+
#Metoda bez parametrów zwracająca współrzędne magnetyzacji w układzie kartezjańskim, <math>M_x=M \cos \theta \cos \phi, M_y=M \cos \theta \sin \phi, M_z=M \sin \theta</math>.
 
#Metoda zwiększająca kąt <math>\theta</math> o wartość <math>\alpha</math> podaną jako parametr (w stopniach), jednocześnie ustawiająca kąt <math>\phi</math> na zero.
 
#Metoda zwiększająca kąt <math>\theta</math> o wartość <math>\alpha</math> podaną jako parametr (w stopniach), jednocześnie ustawiająca kąt <math>\phi</math> na zero.
 
#Metoda zwiększająca kąt <math>\phi</math> o wartość podaną jako parametr.
 
#Metoda zwiększająca kąt <math>\phi</math> o wartość podaną jako parametr.
Linia 16: Linia 16:
  
 
'''Program:'''
 
'''Program:'''
*Stworzyć trzy obiekty zdefiniowanej klasy. Narysować je obok siebie na granatowym tle.
+
*Stworzyć trzy obiekty zdefiniowanej klasy. Wyświetlić je obok siebie na wspólnym granatowym tle.
*W nieskończonej pętli obracać je w każdym kroku o kąt 10 stopni - pierwszy, o kąt 11 stopni - drugi, o kąt 12 stopni - trzeci i po każdym obrocie wyświetlać na nowo.
+
*W nieskończonej pętli obracać wektory magnetyzacji w każdym kroku o kąt 10 stopni - pierwszy, o kąt 11 stopni - drugi, o kąt 12 stopni - trzeci i po każdym obrocie wyświetlać na nowo. Przed kolejnym krokiem pętli odczekać 100 milisekund.
*Pod nimi powinien być wyświetlany wektor magnetyzacji będący sumą trzech poprzednich.
+
*Pod spodem powinien być wyświetlany wektor magnetyzacji będący sumą trzech poprzednich.
 
*Jeśli użytkownik naciśnie Escape, program powinien zakończyć działanie, zamykając wszystkie okna graficzne.
 
*Jeśli użytkownik naciśnie Escape, program powinien zakończyć działanie, zamykając wszystkie okna graficzne.
 
*Naciśnięcie "+" lub "-" powinno zwiększyć lub zmniejszyć kąt \theta o 10 stopni, synchronizując na nowo wektory do kąta \phi =0
 
*Naciśnięcie "+" lub "-" powinno zwiększyć lub zmniejszyć kąt \theta o 10 stopni, synchronizując na nowo wektory do kąta \phi =0

Wersja z 17:17, 18 sty 2018

Kolokwium 2

19.01.2018

Zdefiniuj klasę opisującą opisującą wektor magnetyzacji woksela w trzech wymiarach.

Parametry nieobowiązkowe konstruktora: Bezwzględna wartość wektora magnetyzacji [math]M[/math], domyślna wartość to 1; kąt [math]\theta[/math] odchylenia od pionu, domyślna wartość to 0; kąt [math]\phi[/math] obrócenia wokół osi Z, domyślna wartość to 0. (czyli wektor magnetyzacji we współrzędnych sferycznych)

Pozostałe metody:

  1. Metoda bez parametrów zwracająca współrzędne magnetyzacji w układzie sferycznym [math]M, \theta, \phi[/math].
  2. Metoda bez parametrów zwracająca współrzędne magnetyzacji w układzie kartezjańskim, [math]M_x=M \cos \theta \cos \phi, M_y=M \cos \theta \sin \phi, M_z=M \sin \theta[/math].
  3. Metoda zwiększająca kąt [math]\theta[/math] o wartość [math]\alpha[/math] podaną jako parametr (w stopniach), jednocześnie ustawiająca kąt [math]\phi[/math] na zero.
  4. Metoda zwiększająca kąt [math]\phi[/math] o wartość podaną jako parametr.
  5. Metoda rysująca (wykorzystując cv2) na macierzy tła przekazanej jako parametr rzut wektora magnetyzacji (w żółtym kolorze) o współrzędnych [math](M_x, M_z)[/math], przyjmując jako swój początek współrzędne na obrazie przekazane jako drugi parametr.
  6. Metoda magiczna, która pozwala wykonać polecenie m3=m1+m2, gdzie m1, m2 i m3 byłyby obiektami wektora magnetyzacji.
  7. Metoda magiczna pozwalająca wypisać w eleganckiej formie współrzędne wektora magnetyzacji poleceniem print(m), gdzie m jest obiektem wektora magnetyzacji.

Program:

  • Stworzyć trzy obiekty zdefiniowanej klasy. Wyświetlić je obok siebie na wspólnym granatowym tle.
  • W nieskończonej pętli obracać wektory magnetyzacji w każdym kroku o kąt 10 stopni - pierwszy, o kąt 11 stopni - drugi, o kąt 12 stopni - trzeci i po każdym obrocie wyświetlać na nowo. Przed kolejnym krokiem pętli odczekać 100 milisekund.
  • Pod spodem powinien być wyświetlany wektor magnetyzacji będący sumą trzech poprzednich.
  • Jeśli użytkownik naciśnie Escape, program powinien zakończyć działanie, zamykając wszystkie okna graficzne.
  • Naciśnięcie "+" lub "-" powinno zwiększyć lub zmniejszyć kąt \theta o 10 stopni, synchronizując na nowo wektory do kąta \phi =0