diff --git a/RTX ON/parabola_collision.m b/RTX ON/parabola_collision.m deleted file mode 100644 index a749cb28a8a16315aef0fad23de7973dbb84fe6b..0000000000000000000000000000000000000000 --- a/RTX ON/parabola_collision.m +++ /dev/null @@ -1,40 +0,0 @@ -function [collision, newStart, newDirection] = parabola_collision(start, dir, parab_vertex, focus, parab_width) -%UNTITLED Summary of this function goes here -% Detailed explanation goes here -% minden vektor oszlopvektor: [x; y] -% start: helyvektor, kezdőpontja a sugárnak -% dir: irányvektor, iránya a sugárnak -% refl_center: sík reflektor középpontja (helyvektor) -% refl_radius: sík reflektor mérete, teljes hossz fele -% collision: 1 ha beleütközött, 0 ha nem -% newStart: visszaverődési pont -% newDirection: visszaverődés iránya - Q = start - parab_vertex; - v = dir; - a = 1/(4*focus); - d = parab_width; - k = roots([a*v(2)^2, 2*a*Q(2)*v(2)-v(1), a*Q(2)^2-Q(1)]); - if imag(k(1)) ~= 0 - collision = false; - newStart = [0;0]; - newDirection = [0;0]; - else - if size(k,1) > 1 && k(1) < 1e-6; k = k(2); - elseif size(k,1) > 1 && k(2) < 1e-6; k = k(1); - else; k = min(k); - end - Q2 = Q + k*v; - if abs(Q2(2)) > d/2 || k < 1e-6 - collision = false; - newStart = [0;0]; - newDirection = [0;0]; - else - collision = true; - y = Q(2) + k*v(2); - u = [2*a*y;1]; - newDirection = -(v - (2*v'*u*u)/(u'*u)); - newStart = Q2 + parab_vertex; - end - end -end - diff --git a/RTX ON/reflector_collision.m b/RTX ON/reflector_collision.m deleted file mode 100644 index 917cb1a51b691bac513e2bc37f15bbc179ab7fdb..0000000000000000000000000000000000000000 --- a/RTX ON/reflector_collision.m +++ /dev/null @@ -1,23 +0,0 @@ -function [collision, newStart, newDirection] = reflector_collision(start, dir, refl_center, refl_radius) -%UNTITLED Summary of this function goes here -% Detailed explanation goes here -% minden vektor oszlopvektor: [x; y] -% start: helyvektor, kezdőpontja a sugárnak -% dir: irányvektor, iránya a sugárnak -% refl_center: sík reflektor középpontja (helyvektor) -% refl_radius: sík reflektor mérete, teljes hossz fele -% collision: 1 ha beleütközött, 0 ha nem -% newStart: visszaverődési pont -% newDirection: visszaverődés iránya - - k = (refl_center(1)-start(1))/dir(1); - Q2 = start + k*dir; - newStart = Q2; - newDirection = [-dir(1); dir(2)]; - if abs(Q2(2) - refl_center(2)) < refl_radius && k > 1e-6 - collision = true; - else - collision = false; - end -end - diff --git a/RTX ON/rtx.m b/RTX ON/rtx.m deleted file mode 100644 index 377e51a345338d94583685f45fe7e96ebe17cc36..0000000000000000000000000000000000000000 --- a/RTX ON/rtx.m +++ /dev/null @@ -1,39 +0,0 @@ -function res = rtx(start, dir, sec_refl, parab, max_cycle) -% start: helyvektor, kezdőpontja a sugárnak -% dir: irányvektor, iránya a sugárnak -% sec_refl: [refl_center_x; refl_center_y; refl_center_radius] -% max_cycle: maximum ütközés számítás - Q = start; v = dir; - res(max_cycle+1).Q = [0;0]; - res(max_cycle+1).v = [0;0]; - res(1).Q = start; - res(1).v = v; - ncol = 0; - for k = 1:max_cycle - [col_sec, Q2_sec, v2_sec] = reflector_collision(Q, v, sec_refl(1:2), sec_refl(3)); - [col_pri, Q2_pri, v2_pri] = parabola_collision(Q, v, parab(1:2), parab(3), parab(4)); - if col_pri & col_sec - d_pri = (Q-Q2_pri)'*(Q-Q2_pri); - d_sec = (Q-Q2_sec)'*(Q-Q2_sec); - if d_pri > d_sec; col_pri = false; - else col_sec = false; - end - end - if col_sec - res(k+1).Q = Q2_sec; - res(k+1).v = v2_sec; - Q = Q2_sec; - v = v2_sec; - ncol = ncol + 1; - elseif col_pri - res(k+1).Q = Q2_pri; - res(k+1).v = v2_pri; - Q = Q2_pri; - v = v2_pri; - ncol = ncol + 1; - else - break; - end - end - res = res(1:min(ncol+1,max_cycle+1)); -end \ No newline at end of file diff --git a/RTX ON/rtx_levezetes.pdf b/RTX ON/rtx_levezetes.pdf deleted file mode 100644 index e28b0f81160f4ad37a096853b1ed296f34d5d86a..0000000000000000000000000000000000000000 Binary files a/RTX ON/rtx_levezetes.pdf and /dev/null differ diff --git a/RTX ON/show_arrangement.m b/RTX ON/show_arrangement.m deleted file mode 100644 index f8ff133dd4a2dd1e92e6afb73e0515df4ef1aebf..0000000000000000000000000000000000000000 --- a/RTX ON/show_arrangement.m +++ /dev/null @@ -1,11 +0,0 @@ -function show_arrangement(start, sec_refl, parab) - pri_y = -parab(4)/2:parab(4)/1000:parab(4)/2; - pri_x = 1/(4*parab(3))*pri_y.^2; - pri_x = pri_x + parab(1); - pri_y = pri_y + parab(2); - sec_x = [sec_refl(1); sec_refl(1)]; - sec_y = [sec_refl(2) - sec_refl(3); sec_refl(2) + sec_refl(3)]; - plot(start(1), start(2), 'kO', 'MarkerSize', 10); - plot(sec_x, sec_y, 'b', 'LineWidth', 3); - plot(pri_x, pri_y, 'k', 'LineWidth', 3); -end \ No newline at end of file diff --git a/RTX ON/show_ray.m b/RTX ON/show_ray.m deleted file mode 100644 index 9e0f6d31f480968c254a27bc9c07184b29c31a5a..0000000000000000000000000000000000000000 --- a/RTX ON/show_ray.m +++ /dev/null @@ -1,11 +0,0 @@ -function show_ray(ray) - Qx = zeros(1,size(ray,2)+1); - Qy = zeros(1,size(ray,2)+1); - for k = 1:size(ray, 2) - Qx(k) = ray(k).Q(1); - Qy(k) = ray(k).Q(2); - end - Qx(end) = ray(end).Q(1) + ray(end).v(1); - Qy(end) = ray(end).Q(2) + ray(end).v(2); - plot(Qx, Qy, 'r'); -end \ No newline at end of file diff --git a/RTX ON/sim_test.m b/RTX ON/sim_test.m deleted file mode 100644 index adf4b0f03803dda733a2fa4ec251a1ad950dfd17..0000000000000000000000000000000000000000 --- a/RTX ON/sim_test.m +++ /dev/null @@ -1,21 +0,0 @@ -parab = [0;0;4;4]; -sec_refl = [2.5;0;1]; -start = [1;0]; -phi = linspace(0,2*pi,1000); - -figure(2); -clf; -hold on; -show_arrangement(start, sec_refl, parab); -for k = 1:size(phi, 2) - ray = [cos(phi(k)); sin(phi(k))]; - res = rtx(start, ray, sec_refl, parab, 50); - show_ray(res); -end -hold off; -grid; - -% fókusz/átmérő -% forrás elhelyezkedés -% primer sugárzó pozícióhibája -