<< | #423 ; Pli da simpla geometria optiko |
>> |
Mi jam antaŭe iom pritraktis geometrian optikon kun la libera programo "GNU Octave" ekzemple en artikoloj #401 kaj #418. En la libro "Telescope Optics, Evaluation and Design" ( de skribintoj Harrie Rutten & Martin van Venrooij ) estas iom speciala kalkula metodo, kion mi provas iom-post-iom kompreni.
Celo provizore certe ne estas kalkuli tutaj teleskopoj, sed nur unuopaj optikaj komponantoj kaj relative simplaj kazoj. Eĉ ebena spegulo estas iom stranga kazo uzante la metodon de libro, speciale se la spegulo ne estas vertikala en la 3-dimensia koordinata sistemo.
Mi jen ripetas la bazan metodon de libro por ebena surfaco. La originaj koordinatoj de lumradio estas (Xo, Yo, Zo)
kaj la originaj "direction cosines" de lumradio en la sama ordo estu (lo, mo, no)
. En artikolo #403 estas la metodo por kalkuli la originajn direktojn de lumo en XYZ-koordinatoj.
Unue ni kalkulu la trafan punkton ( Xs, Ys )
en ebeno en nur 2 dimensioj ( ĉar egalas Zs = 0 )
μs = n / n' % por reflekto el spegulo μs = -1 to = Zo - d μv = to / no Xs = Xo - μv · lo Ys = Yo - μv · mo Zs = 0
Sekve ni kalkulas novaj "direction cosines" (ls, ms, ns)
el la originaj, por 3 dimensioj:
ls = μs · lo ms = μs · mo ns = (μs2 · (no2 - 1) + 1 )1/2
% ... sed fakte por reflekto el spegulo simple % estas ns = -no ĉar tiam egalas μs2 = 1 kaj % post reflekto estu la signo de movado en Z-direkto alia.
La metodo de libro ja estas pli ĝenerala ĉar oni volas samtempe ankaŭ pensi pri lensoj, sed mi nun pensu nur pri ebena spegulo.
Simplan ebenan spegulon mi certe kapablas mem kalkuli per vektoroj, sen la metodo de libro, sed oblikva optiko ĝenerale estas iom stranga kazo kaj ĝi bezonas iom da eksperimentado, prefere uzante kiel eble plej simplan ekzemplon.
La veraj malfacilaĵoj okazus se estus ekzemple sfera lenso oblikva al la lumo, sed mi volas unue kompreni la librajn principojn de "Non-Centered Systems" kaj "Tilted Elements".
Apude estas foto el la libro por klarigi la oblikvan kazon. Ni tamen pensu pri tio nur poste.
La ideo por ĉi tio artikolo estas, unue por kalkuli tute simplan reflekton el ebena vertikala spegulo, kaj sekve por kalkuli principe similan reflekton el al la koordinata sistemo oblikva ebena spegulo. La metodo de libro por ebena surfaco principe estas jam en la fino de artikolo #401 (kvankam mi tiam ne pensis pri reflekto el surfaco, sed supozis ke la surfaco estu la sensilo de fotilo). Tamen la oblikva kazo bezonas ioman novan pensadon.
Eble mi povus ankau kalkuli la saman rezulton kun simplaj vektoroj. Por ebena surfaco tio estas facile. Por sfera surfaco ... ne tiel facile. Sed unue ni lernu por uzi la metodon de libro.
Nia koordinata sistemo estu tia ke Z-koordinato kreskas dekstren. XY-ebeno estas orta al la Z-akso. Movado dekstren (en Z-direkto) estas pozitiva (+) kaj movado maldekstren negativa (-). Radiuson de kurbeco ( r ) kaj fokusan distancon ( f) ni tute ne bezonas pensi por ebena surfaco.
Unua simpla ekzemplo do estu tia ke la ebena spegulo estu tute vertikala kaj la lumradio trafu la spegulon oblikve, ekzemple en angulo 45° kaj en X- kaj en Y-direkto. La reflekto ja tiam estos tre antaŭvideble la samaj 45° al la aliaj direktoj el la al surfaco orta vektoro, sed ni unue lernu por promeni, antaŭ ol lerni por kuri kaj saltadi.
Malnovaj finnoj diris ke oni prefere grimpu al alta arbo el bazo de arbo, kaj ne el la supro ; "Tyvestä puuhun noustaan". Ni do komencu por grimpi supren el la bazo.
La centro de cela ebeno estu en distanco d
. La kalkula metodo de la libro ja havas iom alian interpretadon pri Z-koordinatoj. La celo de lumo estu en XY-ebeno en la grafiko. Jen la plej simpla "GNU Octave" programo kaj la grafika rezulto en ZY-ebeno:
d = 50; % distanco d = 50 mm lumo = [ 0 d 0 ]; % Komenca punkto de lumo x0 = lumo(1); y0 = lumo(2); z0 = lumo(3); % nulo % Direkto de lumo en XYZ-direktoj l0 = 0; m0 = cosd(90+45); n0 = sqrt(1 - l0^2 - m0^2); mys = -1; % Por reflekto el spegulo t0 = z0 - d; myv = t0 / n0; % Trafa punkto sur spegulo xs = x0 - myv*l0; ys = y0 - myv*m0; zs = 0; % Tamen ni volas kalkuli la veran Z-koordinaton por grafiko % kaj tial ni aldonu la distancon al Z-koordinato zs = zs + d; % Novaj direktoj por lumo post reflekto ls = mys * l0; ms = mys * m0; ns = n0; % Direkto de lumo post la reflekto estas maldekstren xr = xs - 60*ls; yr = ys - 60*ms; zr = zs - 60*ns; % lumoX = [ x0 xs xr ]; lumoY = [ y0 ys yr ]; lumoZ = [ z0 zs zr ]; hold on grid on axis ( [ -5, 55, -50, 50 ] ) xlabel ("Z (mm)"); ylabel ("Y (mm)"); title ( ["Ebena spegulo, ZY-ebeno"] ) % La spegulo line ("xdata", [ d d ], "ydata", [ -20 20 ], "color", "red", "linewidth", 2 ) line ("xdata", lumoZ, "ydata", lumoY, "color", "cyan") % La lumradio text (20, 20, "Envenanta lumo", "fontsize", 12, "color", "green") text (20, -20, "Reflektita lumo", "fontsize", 12, "color", "red") hold off
La lumo do komencis el ZY-ebeno el loko 50 mm super la Y=0 kaj veturis en angulo -45° al la centro de spegulo kie ĝi reflektiĝis kaj komencis veturi maldekstren. Por mi ioma surprizo estis ke por grafiko ĉiuj la direktoj post reflekto estu negativaj (vidu la koordinatojn xr, yr, zr
en la programo) por ke la reflekto el spegulo estu realisma.
Ĉi tio vertikala spegulo ja estis la plej simpla kazo. La vera tasko estas nun por lerni kiel kalkuli kaj grafike prezenti spegulon kio estas oblikva. Instrukcioj el la libro (supra foto), unue novaj provizoraj valuoj:
Xi = X0 ti = t0 li = l0 ni = n0
Sekve ni kalkulu kun la angulo ψ
Ph = sin ψ hp = cos ψ
Novaj valuoj estos:
X0 = Xi · hp + ti · Ph t0 = ti · hp - Xi · Ph l0 = li · hp + ni · Ph n0 = ni · hp - li · Ph
Valuoj por Y kaj m
restos la samaj laŭ libro. Eble oni devas klini la lumradion returnen post la kalkulado de novaj koordinatoj ( Xs, Ys, Zs )
kaj la novaj direktoj ( ls, ms, ns )
Sekve mi do devas lerni por desegni (laŭ la kalkula metodo de la libro) la saman simplan grafikon tiel ke la spegulo estas en angulo 45° al la envenanta horizontala lumo kaj tiam la reflektita lumo estu vertikala, en 45° angulo al la surfaco de oblikva spegulo ...
Fakte mi kredas ke temas pri turno de koordinatoj, iom simila operacio al la apuda foto el finna libreto de teknika matematiko. La nomoj de aksoj tamen estas aliaj.
En la foto oni povas transformi la koordinatojn de sama vektoro r el origina sistemo de koordinatoj (x, y)
al koordinatoj (x1, y1)
aŭ returnen. La angulo inter la du sistemoj de koordinatoj estas α
kaj la origina angulo por la vektoro estas φ
Kiel oni pruvu la apudajn formulojn de finna libro? Ekzistas ja trigonometriaj formuloj por diferenco de anguloj kiojn oni povas utiligi:
sin(α - β) = sin α · cos β - cos α · sin β cos(α - β) = cos α · cos β + sin α · sin β
El la apuda foto oni ja rekte vidas la sekvantajn egalecojn:
x = r · cos φ y = r · sin φ x1 = r · cos (φ - α) y1 = r · sin (φ - α)
Ni uzu la supran formulon por la diferenco de anguloj (φ - α), unue por x1:
x1 = r · cos (φ - α) = r · ( cos φ · cos α + sin φ · sin α ) = r · cos φ · cos α + r · sin φ · sin α = x · cos α + y · sin α
Kaj por la alia nova koordinato y1 :
y1 = r · sin (φ - α) = r · ( sin φ · cos α - cos φ · sin α ) = r · sin φ · cos α - r · cos φ · sin α = y · cos α - x · sin α
Kioj ja estas la formuloj de libro, kvankam en iom alia ordo. La angulo φ do fine tute ne influas al la rezulto.
Estas iom aliaj formuloj por transigo el koordinatoj (x1, y1) al koordinatoj (x, y). Mi opinias ke mi povas pruvi ilin nur pensante ke la angulo ( nomita a
aŭ eble α
) inter la sistemoj estas nun al la alia direkto, do negativa.
Ekzistas facilaj formuloj por negativaj anguloj : simple egalas cos( -α ) = cos(α)
kaj por la alia trigonometria funkcio validas sin( -α ) = - sin(α)
Apuda desegnaĵo helpas por kompreni la trigonometriajn funkciojn de negativaj anguloj. La radiuso de cirklo estu r = 1
kaj la trianguloj en la cirklo klare estas ortangulaj. Notu ke la radiuso de cirklo estas samtempe ankaŭ la hipotenuzo de trianguloj. Ni nomu la longon de horizontala kateto X kaj la longon de vertikala kateto Y.
Por angulo a
ni povas kalkuli sin a = Y/r = Y/1 = Y
kaj cos a = X/r = X/1 = X
ĉar la longo de hipotenuzo estas r = 1
kaj tial ni povas rekte skribi la longojn de katetoj kiel sin a
por Y kaj cos a
por X
Sekve ni pensu pri la negativa angulo -a
kio estas same granda sed al la alia direkto. Klare la X-kateto estas la sama por ambaŭ anguloj, cos a = X/r = X
kaj do validas cos(-a) = cos(a)
Tamen la alia kateto en la Y-direkto estas negativa ĉar Y estas negativa ( sin(-a) = (-Y)/1 = -Y
) kaj tial validas sin(-a) = - sin(a)
Sekve mi volas skribi la supran transformon de koordinatoj al la alia direkto, simple uzante angulon -a
anstataŭ la origina a
kaj mi esperas ke mi trafos la saman rezulton kio estas fotita el la finna matematika libreto.
Nun ni do komencas el la oblikvaj koordinatoj (x1, y1) kaj ni volas kalkuli la koordinatojn (x, y). Mi uzas la antaŭjan rezultojn kaj nur anstataŭigos x por x1 kaj y por y1 kaj -a
por a
x = x1 · cos(-a) + y1 · sin(-a) = x1 cos(a) - y1 sin(a) y = y1 · cos(-a) - x1 · sin(-a) = y1 cos(a) + x1 sin(a)
La angla libro uzas miaopinie koordinatojn de maldekstra mano. Mi prefere uzas koordinatojn de dekstra mano. Mi prefere pensas ke la angulo φ okazas en la ZY-ebeno, anstataŭ la ZX-ebeno kion la angla libro uzas. Mi do prefere uzos iom aliaj nomoj por mia propra desegnaĵo kaj mi supozas ke la koordinatoj en la X-direkto ( X0, l0
) ne aliiĝas en turno de sistemo.
Nia optika sistemo ja estas vere 3-dimensia, sed ni bezonas nur 2 dimensioj ( Y kaj Z ) por la turno de koordinatoj ĉirkaŭ la horizontala X-akso.
Mi volas nun desegni pli realisman bildon por nia propra kazo de oblikva ebena spegulo. La matematiko tamen estas esence la sama. Kiam la spegulo estas oblikva en la originaj koordinatoj, la principo do estas simple por unue turni la koordinatojn, tiel ke la spegulo estas vertikala en la nova sistemo. Sekve ni kalkulu same kiel por la plej simpla kazo (supre). Kaj poste ni turnu la koordinatojn returnen al la origina pozo.
Jen mia unua provo de nia grava bildo por turni la koordinatojn. Y-akso estas vertikala kaj Z-akso estas horizontala, pozitiva dekstren. Tamen fakte la direkto de vera spegulo estas laŭ la Y'-akso, kio estas en angulo a
al la Y-akso. Ankaŭ la vera Z' -akso formas la saman angulon a
kun Z-akso.
Ni ja volas pensi ke la lumradio alvenas el maldekstra flanko kaj la pozitiva Z-direkto estas dekstren. Nia grava punkto - komuna por ambaŭ sistemoj de koordinatoj - estas maldekstre en punkto r
kion oni povas pensi kiel vektoro. Temas pri la loko el kio la lumradio komencas. Ne pensu pri la direkto de lumradio, nur pri la starta punkto. Koordinatoj de punkto r
en aliaj sistemoj:
cos(c) = z/r ; z = r * cos(c) sin(c) = y/r ; y = r * sin(c) cos(a+c) = z'/r ; z' = r * cos(a+c) sin(a+c) = y'/r ; y' = r * sin(a+c)
Nia origina optika sistemo estas en la oblikvaj koordinatoj (Z', Y') kaj ni volas unue kalkuli la situacion en la pli norma sistemo (Z, Y) tiel ke eblas pli facile kalkuli la reflekton laŭ la metodo de libro. Kredeble jen eblas utiligi pretajn trigonometriajn formulojn por la sumo de anguloj:
sin(α + β) = sin α · cos β + cos α · sin β cos(α + β) = cos α · cos β - sin α · sin β
La pozitiva X-akso estas direktita for el nia ZY-ebeno (koordinatoj de dekstra mano), sed la x-koordinatoj tute ne aliiĝas kiam ni turnas la sistemon ĉirkaŭ la horizontala X-akso.
Por angulo a
:
z' = r cos(a + c) = r · ( cos a cos c - sin a sin c ) = ( r cos c ) · cos a - ( r sin c ) · sin a = z · cos a - y · sin a y' = r sin(a + c) = r · ( sin a cos c + cos a sin c ) = ( r cos c ) · sin a - ( r sin c ) · cos a = z · sin a + y · cos a
Kaj por la alia direkto, por negativa angulo -a
:
z = z' · cos (-a) - y' · sin (-a) = z' cos (a) + y' sin (a) y = z' · sin (-a) + y' · cos (-a) = z' sin(a) - y' cos(a)
Nu, la formuloj ŝajnas iom similaj al la formuloj de libro, sed sekve mi volas uzi la programon "GNU Octave" kaj grafikon por certigi la matematikon.
Kaj certe fine ..........
NI VENKOS!
La Ambasadoro en Finnlando de sendependa nacio Mueleja Insulo |