%% Interaktyvus pratimas nr. 4. Logaritminė spiralė
% Logaritminė spiralė yra viena iš kreivių, kurią dažnai galima aptikti ne tik gamtoje, bet ir praktikoje. Ši kreivė turi svarbią savybę, kuri yra išnaudojama technikoje ir mechanizmų konstrukcijose: šios kreivės kreivumas yra pastovus, t.y. kampas tarp vektoriaus-spindulio ir liestinės bet kuriame kreivės taške yra pastovus. Būtent šios savybės demonstracijai yra skirtas šis interaktyvus pratimas.
% Per paskaitą jau kalbėjome apie diskinio pjūklo pavyzdį. Pateiksime dar kelis pavyzdžius:
%
% Pirmajame paveiksle matome logaritminės spiralės taikymą dekorui, t.y. ventiliatoriaus konstrukcijoje matome apspauginį tinklą, kuriau buvo panaudota mūsų nagrinėjama kreivė. Antrame paveiksle pavaizduota vandens siurblio dalis - vamzdis, kuris yra suvyniotas palei logaritminę spiralę, kuriuo vandens srautas tiekiamas į turbinos rato mentes. Trečiajame paveiksle matome, kad saulėgražos sėklos taip pat išsidėsto logaritmine spirale. Sėklos yra išdėstytos optimaliai, tai yra, maksimaliai išnaudoja erdvę.
% Logaritminę spiralę braižysime polinių koordinačių sistemoje, t.y. tokioje, kur vietoje mums įprastų koordinačių x ir y taškui aprašyti yra naudojamas atstumas nuo koordinačių pradžios \rho \; ir kampas, kurį sudaro atitinkamas vektorius su \textrm{Ox} ašies teigiamąja kryptimi \varphi.
%
% Logaritminės spiralės lygtis polinių koordinačių sistemoje yra:
% \varphi =\frac{1}{b}\ln \left(\frac{\rho }{a}\right).
% Kaip jau minėta aukščiau, šiame interaktyviame pratime nubraižysime šią kreivę ir pademonstruosime vieną iš jos esminių savybių (grafiko liestinės savybę).
% Pradėsime nuo kreivės braižymo. Galite keisti parametrus a\in \left(0;1\right) ir b\in \left(0;1\right) bei stebėti, kaip keičiasi kreivės pavidalas.

a = 0.64;
b = 0.26;

rho = 0.01:0.01:10;

phi = 1/b * log(rho/a);
polarplot(phi, rho)
hold on;

%
% Dabar galime nubraižyti vektorių-spindulį. Jį interpretuosime kaip tiesę, kurios krypties koeficientas yra kampo \varphi tangentas, o polinių koordinačių sistemoje šios tiesės lydtis yra \varphi =\varphi_{0\;}.
% Galite keisti tiesės kampą (laipsniais).

alpha = 156;

angle = ones(length(rho))*deg2rad(alpha);
polarplot(angle, rho, 'r')

%
% Dabar galime nubraižyti liestinę pasirinktame logaritminės spiralės taške. Liestinės padėtį kontroliuoja parametras k, kuris parodo pilnų apsisulimų skaičių.
% Kampas tarp vektoriaus-spindulio ir liestinės yra pastovus ir priklauso nuo tik nuo parametro b. Jeigu šį kampą pažymėsime \beta, tai jo didumą galime surasti iš išraiškos:
% \mathrm{cos}\;\beta =\frac{b}{1+b^2 }\;.

k = 0;

rho0 = a * exp(b * deg2rad(alpha + 360*k));
x0 = rho0 * cosd(alpha);
y0 = rho0 * sind(alpha);
x = -10:0.01:10;

beta = acosd(b/sqrt(1+ b^2));

y = tand(alpha + beta)*(x-x0) + y0;
r = hypot(x, y);
theta = atan2(y, x);

polarplot(theta, r, 'g')
rlim([0, 10])
hold off

%% Pabandykite patys
% Paanalizuokite paskutiniosios dalies kodą. Kam naudojamos trigonometrinės funkcijos? Kurioje eilutėje yra aprašyta liestinės lygtis?
% Užrašykite logaritminės spiralės išraišką stačiakampėje koordinačių sistemoje.